mvコマンドを使えば、
①ファイル(ディレクトリ名)の変更
②ファイル(ディレクトリ)の移動
の2種類の処理を行うことができます。
#ファイル(ディレクトリ)名の変更
$ mv < 変更前のファイル(ディレクトリ)名 > < 変更後のファイル(ディレクトリ)名 >
例)test.txt
というファイルをhoge.txt
というファイル名に変更する場合
$ mv test.txt hoge.txt
なお、上記の例でコマンドを実行した時に
既にhoge.txtファイルが存在していた場合は、test.txtを名前変更したと同時にもともとあったhoge.txtが上書きされてしまいます。
それを防ぐには、その1つの方法として-i
オプションを付けます。
これにより、mvコマンド実行時に「上書きしていいですか?」と確認されるようになります。
$ mv -i test.txt hoge.txt
ファイルの上書き防止系のオプションは他にもありますので、この記事の最後にオプションを一覧にまとめておきました。
また、mvコマンドでは1つずつしかファイル名の変更はできないので、複数のファイルを一括して変更したい時はrenameコマンド
を使います。
#ファイル(ディレクトリ)の移動
$ mv < ファイル(ディレクトリ)名 > < 移動先のディレクトリ名 >
例)sample.txt
というファイルをdir
というディレクトリに移動する場合
$ mv sample.txt dir
ちなみに、移動先のディレクトリに/.
を付けて、dir/.
とした方が安全です。
この/.
には、「ディレクトリ直下の」という意味があります。
理由として、もし「sample.txtファイルをdirディレクトリに移動する」という指示のコマンドを実行した時にdirディレクトリが存在していなかった場合、単にsample.txt
ファイルがdir
という名前の__ファイル__に変更されてしまうという挙動をとるためです。
ファイル名の変更の際の構文である
$ mv < 変更前のファイル(ディレクトリ)名 > < 変更後のファイル(ディレクトリ)名 >
が適用されてしまっているのですね。
なので、以下のようにコマンドを打つのが安全です。
$ mv sample.txt dir/.
###複数のファイル(ディレクトリ)をまとめてディレクトリに移動
mvコマンドでは、複数のファイルを移動することもできます。
例)sample01.txt
,sample02.txt
,sample03.txt
をまとめてdir
というディレクトリに移動する場合
$ mv sample01.txt sample02.txt sample03.txt dir/.
###ファイル(ディレクトリ)をカレントディレクトリの一つ上の階層に移動
$ mv < ファイル(ディレクトリ)名 > ../
#mvコマンドの主なオプション一覧
オプション | 説明 |
---|---|
-b (--backup) |
移動先に同名のファイルがあれば、バックアップを取ってから上書きする |
-f (-force) |
移動先に同名のファイルがあれば、強制的に上書きする |
-i (–interactive) |
移動先に同名のファイルがあれば、上書きしてOKか確認する |
-n (–no-clobber) |
移動先に同名のファイル(ディレクトリ)があったら上書きしない |
-v (–verbose) |
移動処理行う際の詳細情報を表示する |