【Linuxでの移動】オプション含めて紹介!mvコマンドの詳細まとめ

★★★:バランスよく議論できる
★★☆:意見を吟味する
★☆☆:客観的情報
☆☆☆:議論用ではない
☆☆☆:議論用ではない
ある特定のオピニオンが述べられる
ある特定のオピニオンが述べられる
いつ登録したか
Aug 7, 2019 01:10 AM
オピニオンが含まれない
オピニオンが含まれない
カテゴリー
両論が併記される
両論が併記される
事実ベース
事実ベース
立体的(多角的)
立体的(多角的)
考察的・思想的
考察的・思想的
複数のオピニオンが含まれる
複数のオピニオンが含まれる
調査、データ、観察的
調査、データ、観察的
notion imagenotion image
mvはファイルやディレクトリを移動するコマンドだ。mvを使えないとLinuxは操作できない。
このページではmvコマンドについて詳しくまとめた。知らなかった便利なオプションもあるはずだ。
ぜひ参考にしてみてほしい。

mvコマンドの基本

mvコマンドの基本動作

mvコマンドは「move」の略で、移動のコマンドだ。ファイルやディレクトリを移動する。
基本的な書式は次のようになる。
$ mv 移動元 移動先
例えば、mvディレクトリにfilAを移動するとすると次のようになる。
$ mv fileA mv/fileA
notion imagenotion image
これで移動が完了する。
ディレクトリの操作もまったく同じだ。ファイルと同じように移動ができる。
$ mv 元のディレクトリ 移動先
これだけだ。次のように、mvディレクトリに、DirAディレクトリを移動してみる。
notion imagenotion image
このように、移動ができている。

mvで同じ名前のまま移動する

ファイルを同じ名前のまま移動する場合、移動先はディレクトリ名だけ入力すればいい。
先ほどと同じように、mvディレクトリにfileAを移動するとする。名前を変える必要がなければ、次のコマンドで移動ができる。
$ mv fileA mv
notion imagenotion image
ファイル名を入力しなくて済むので、処理が早くできる。

mvコマンドによる名前の変更

mvディレクトリという名前が、コマンドと同じでわかりにくいと思ったとしよう。mvコマンドは名前を変更するのにも使う。
$ mv 元の名前 変更後の名前
という書式だ。要するに、移動とまったく変わらない。mvディレクトリの名前をmvDirディレクトリに変更する。
$ mv mv mvDir
notion imagenotion image
このように名前が変更できた。
これは意外と知らない人もいるかもしれないが、複数のファイルを一度に移動することもできる。
$ mv 移動ファイル1 移動ファイル2 ディレクトリ
例えば次の通りだ。
$ mv fileA fileB DirA
notion imagenotion image
ここまでがmvコマンドで、必ず知らないといけない基本的な使い方になる。

mvコマンドの便利なオプションたち

mvコマンドのオプション一覧

後から詳細をご紹介するが、まずは一覧で見てみよう。

-b, --backup

移動後に上書きや削除されるファイルのバックアップを取る

-f, --force

確認をせずに上書きをする

-i, --interactive

上書きの場合は確認をする

-n, --no-clobber

移動先に同じ名前のファイルやディレクトリがあるときは移動をしない

-S, --suffix=SUFFIX

バックアップの形式を決める

-t, --target-directory=DIRECTORY

ターゲットとなるディレクトリを指定する。

-u, --update

移動元の方が新しい場合のみ新しい上書き

-v, --verbose

移動の詳細表示
それぞれ詳細を紹介していこう。

-bオプション(--backup):バックアップを取る

mvコマンドは移動後に自然と上書きの挙動を取る。-bオプションをつけると、上書きになるファイルのバックアップを取ってくれる。
大事なファイルの移動中など、誤って消してしまわないように-bオプション(--backupオプション)をつけておくと安心だ。
$ mv -b fileA fileB
notion imagenotion image
最後に「~」がついたものがバックアップファイルだ。バックアップファイルの名前は調整ができる。--suffixオプションを使う。
--suffixオプションでは色々な設定が可能だが、バックアップ日の表示が一番使いやすい。こちらを紹介しよう。
次のコマンドでバックアップファイルの後ろに日付を入力できる。
$ mv -b --suffix=_$(date +%Y%m%d) 移動元 移動先
notion imagenotion image

-fオプション(--force):上書き時に確認しない

-fオプションをつけると上書き時に確認をしない。強制的に上書きをする形だ。
$ mv -f fileA fileB
notion imagenotion image
mvコマンドのデフォルトでこの状態になっているディストリビューションも多いが、念のため確認しておこう。

-iオプション(--interactive):上書き時に確認をする

-fオプションと反対の挙動になるのが-iオプションだ。上書きをする際に確認をするようになる。
$ mv -i fileA fileB
notion imagenotion image
このように上書き時に「よろしいですか(yes/no)?」と聞かれるようになる。yesもしくはnoで回答すると、処理が実行される。

-nオプション(--no-clobber):上書きはしない

移動先に同じ名前のファイルやディレクトリがあるとき、-nオプションをつけてmvコマンドを実行すると、移動が実行されない。上書きをしないようにするのが-nオプションの役割だ。
$ mv -n fileA fileB
notion imagenotion image
上記例だと、本来fileAがなくなり、fileBのみになるはずだ。しかし、実行されていないのがわかる。

Question -i, -f, -nを同時に入力したらどうなるか?

-iと-f、-nを同時に入力すると、一番最後のオプションが反映される。-nfiオプションをつけると、-iオプションだけが使われる。
notion imagenotion image

-vオプション:移動の詳細情報を表示

-vオプションをつけると、移動元と移動先を矢印で繋いで明示してくれる。一括でファイルを移動するときなど確認用につけるといいだろう。
$ mv -v fileA fileB DirB DirA
notion imagenotion image

-tオプション:ターゲットとなるディレクトリを指定

あまり使うことはないが、移動先のターゲットとなるディレクトリを明示することもできる。下記の例だと-tオプション無しだとDirBディレクトリに入るが、-tオプションでDirAファイルを移動先としている。
$ mv -t DirA fileA DirB
notion imagenotion image

-uオプション(--update):新しい場合のみ上書き

-uオプションをつけることにより、移動元の方が新しい場合のみ上書きができるように設定できる。
$ mv -u fileB fileA
とすると、通常fileAは消えるはずだが、fileAの方が新しいため残る。
notion imagenotion image

mvコマンドと類似のコマンド群

最後にmvコマンドと似ているコマンドも紹介しておく。
copyコマンドだ。バックアップ等似ているオプションも多い。

rmコマンド

removeで削除のコマンドになる。cp、mv、rm、rmdirなどのコマンドは考えずとも指が動くようにしておきたい。

まとめ

mvコマンドは日常的に使うLinuxコマンドだ。オプションを使わずに使うことが多いが、知っておいて損はない。
この機会にぜひmvコマンドの詳細を確認してほしい。