今回はLinuxコマンドであるmvコマンドについて解説します
mvコマンドはディレクトリやファイルの名前を変更、指定の場所に移動するLinuxの基本コマンドです
ぜひ覚えて帰ってくださいね!
※注 本文の△は半角スペースに置き換えてください。わかりやすくするために△で記述してます
mvコマンドとは??
mvコマンドはディレクトリやファイルの名前を変更、指定の場所に移動するコマンドです
ファイル、フォルダを特定の場所に移動したり、名前を変更する際に使用します
「move」を省略して「mv」になっています
指定の仕方としては、「mv△移動元△移動先」と指定します
移動元と移動先のディレクトリが一致している場合ファイルやディレクトリの名前を変更することが出来ます
移動元と移動先のディレクトリが違う場合は移動先のフォルダにファイルやディレクトリを移動することが出来ます
また、ファイルを複数指定して移動することも可能です
mv△移動元△移動先
mv△ファイル1△ファイル2△ファイル3△ディレクトリ名
移動元と移動先が同じ場合

移動元と移動先が違う場合

ファイルを複数指定している場合

mvコマンドの主なオプション
オプション | 意味 |
---|---|
-f (--force) | 移動先にふぉう名のファイルがあれば強制的に上書きする |
-i (--interactive) | 移動先に同名のファイルがあれば上書きしてOKか確認する |
-b (--backup) | 移動先に同名のファイルがあればバックアップを取ってから上書きする |
-n (--no-clobber) | 移動先に同名のファイルやディレクトリがあったら上書きしない |
-v (--verbose) | 移動処理を行う際の詳細情報を表示する |
-u (--update) | 移動先ファイルが移動元ファイルより古い場合、または移動先に同名ファイルが存在しない場合のみ移動する |
-S△接尾辞 (--suffix=接尾辞) | バックアップファイルを作る際のファイル名末尾に着ける文字を指定する |
-t△ディレクトリ (--target-directory=ディレクトリ) | 移動先ディレクトリを明示的に指定する |
-T (--no-target-directory) | 移動先をディレクトリとして扱わない |
--backup[=CONTROL] | バックアップの作成方式を詳細に指定する |
--strip-trailing-slashes | 引数の末尾のスラッシュを削除する |
-f (–force)
移動先に同名のファイルがあれば強制的に上書きするオプション
よくオプションは頭文字がつけられることが多いのですが、
こちらは「force」の頭文字のfと覚えましょう
mv△-f△ファイル名1△ファイル名2

-i (–interactive)
移動先に同名ファイルがあれば上書きしてOKか確認するオプション
移動先ファイルの上書きを確認してくれるので、移動先ファイルの名前を上書きしたくないときに便利です
「interactive」のiです
エイリアス機能というコマンドをひとまとめにできる機能があるのですが、「mv」だけで「mv△-i」を呼び出してくれる設定がしてある可能性があります
その場合「mv」コマンドのみでも「mv△-i」の働きをしてくれます
「alias」コマンドを引数なしで実行することで、現在設定されているエイリアス機能を確認することが出来ます
「alias△mv△=’mv△-i’」と記載があったらmvコマンドのみでも「mv△-i」の働きをしてくれますよ
mv△-i△ファイル名1△ファイル名2
ファイル名1をファイル名2に変更
mv△-i△ファイル名△ディレクトリ名
ファイルを指定ディレクトリに移動
mv△-i△ディレクトリ名1△ディレクトリ名2
ディレクトリ名1をディレクトリ名2に変更

-b (–backup)
移動先に同名のファイルがあればバックアップを取ってから上書きするオプション
移動先の元のファイル名が「既存ファイル名~」に変わって、移動元のファイル名が指定したファイル名に変わります
mv△-b△ファイル名1△ファイル名2

-n (–no-clobber)
移動先に同名のファイルやディレクトリがあったら上書きしないオプション
移動先のファイルをどうしても上書きしたくないときに使います
ファイルがある場合は上書きされず「mv」は実行されません
mv△-n△ファイル名1△ファイル名2

-v (–verbose)
移動処理を行う際の詳細情報を表示するオプション
元ファイル名 → 変更後ファイル名 のように表示されます
mv△-v△ファイル名1△ファイル名2

-u (–update)
移動先ファイルが移動元ファイルより古い場合、または移動先に同名ファイルが存在しない場合のみ移動するオプション
既存のファイルが最新の場合は無駄な移動処理を省略できるため、効率的です
同期処理やバックアップ処理でよく使用されます
mv△-u△移動元△移動先
-S△接尾辞 (–suffix=接尾辞)
バックアップファイルを作る際のファイル名末尾に着ける文字を指定するオプション
よく日付でバックアップファイルを作成することがあるのですが、そういう時に
「-S△_$(date△+%Y%m%d)」を指定してあげると移動元ファイルの名前が移動先にあった場合に
移動先ファイルの後にYYYYMMDD(年月日)が入るようになります
mv△-S△接尾辞△移動元△移動先
mv△-S△_$(date△+%Y%m%d)△file1△file2
-t△ディレクトリ (–target-directory=ディレクトリ)
移動先ディレクトリを明示的に指定するオプション
複数のファイルを一つのディレクトリに移動する際に便利です
通常の構文とは逆で、最後に移動先を指定する必要がありません
mv△-t△移動先ディレクトリ△ファイル1△ファイル2△ファイル3
-T (–no-target-directory)
移動先をディレクトリとして扱わないオプション
移動先がディレクトリであっても、そのディレクトリ内ではなく、ディレクトリ自体を置き換えたい場合に使用します
mv△-T△移動元△移動先
–backup[=CONTROL]
バックアップの作成方式を詳細に指定するオプション
CONTROL値として、none(バックアップなし)、off(バックアップなし)、numbered(番号付き)、t(番号付き)、existing(既存の方式に従う)、nil(既存の方式に従う)、simple(単純バックアップ)、never(単純バックアップ)が指定できます
mv△–backup=numbered△移動元△移動先
mv△–backup=simple△移動元△移動先
–strip-trailing-slashes
引数の末尾のスラッシュを削除するオプション
ディレクトリ名の末尾についているスラッシュを自動的に取り除きます
シェルの補完機能によって末尾にスラッシュが付いてしまった場合などに便利です
mv△–strip-trailing-slashes△dir1/△dir2
オプションの組み合わせ例
実際の運用では複数のオプションを組み合わせて使用することが多いです
mv△-iv△*.txt△/target/directory
# -i: 確認、-v: 詳細表示
mv△-bv△important.txt△important_new.txt
# -b: バックアップ、-v: 詳細表示
mv△-uv△source/△target/
# -u: 更新のみ、-v: 詳細表示
まとめ
いかがでしたでしょうか
今回はmvコマンドについてまとめてみました
mvコマンドはディレクトリやファイルの名前を変更、指定の場所に移動するコマンドでLinuxの基本コマンドです
豊富なオプションを組み合わせることで、様々な場面に対応できる汎用性の高いコマンドです
少しオプションが多いですが、3,4回触れば覚えられてしまうので
この機会にぜひ覚えてしまいましょう!