Linuxコマンド mv(ファイル・ディレクトリを移動/名前変更)
ファイルやディレクトリの移動及び名前の変更をするmvコマンドの解説。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
使用方法
書式
$ mv [オプション] 移動元 移動先
オプション
-f, –force | 同名のファイルがあれば上書き |
-i, –interactive | 同名のファイルがある場合は確認メッセージが表示 |
-t ディレクトリ名 –target-directory=ディレクトリ名 | 移動元にあるすべてのファイルを指定したディレクトリに移動する |
-n, –no-clobber | 既存のファイルを上書きしない |
-u, –update | 移動元ファイルが移動先ファイルより新しい、または移動先が存在しない場合のみ移動する |
-v, –varbose | 実行中の動作を表示する。 |
-b –backup=フラグ | 移動先のディレクトリに同名のファイルが存在する場合は、 ファイル名の末尾にチルダ(~)が付加されバックアップされます。 ※フラグは、指定可能なバックアップ方法の表を参照 |
-S 文字列 –suffix=文字列 | 移動先に同じファイル名がある場合、指定した文字列をバックアップファイル名に付加する。 「.」などは勝手に付加されない |
フラグ | 説明 |
---|---|
none/off | バックアップを作成しない |
numbered/t | 常に数字の拡張子を持つバックアップを作成する |
existing/nil | 数字つきのバックアップファイルがある場合は加算、ない場合は「~」だけ付加する |
simple/never | 「~」をつけるだけのバックアップを行う |
ディレクトリ・ファイル名を変更する
既存のファイル、ディレクトリの名前を変更。
サンプル
ディレクトリ名dir1をdir2に変更する。
$ mv dir1 dir2
サンプル
ファイル名sample1.txtをsample2.txtに変更する。
$ mv sample1.txt sample2.txt
ディレクトリ・ファイルを移動させる
既存のファイル、ディレクトリを別のディレクトリへ移動する。ディレクトリの指定は絶対パスでも相対パスでも有効。
サンプル
ファイル名sample1.txtをディレクトリのdirに移動させる。
$ mv sample1.txt dir1
移動先に同名のファイルが存在する場合
一般コマンドは、一般ユーザー権限でオプションの指定なしで実行した場合、移動先に同名ファイル名が存在する場合、オーバーライド(上書き)するかメッセージが表示されます。ただし、CentOSにおいては、管理者権限で実行した場合オーバーライドメッセージが表示されます。
「y」もしくは、「Y」Enterすることで処理を進めます。「N」または「n」Enterキーで処理を中断します。
既存ファイルをバックアップして移動する
移動先に同名のファイルが存在する場合は、バックアップファイルを作成して移動する方法。バックアップファイルにはファイル名の末尾にチルダ(~)が付加される。
サンプル
ファイル名sample1.txtをディレクトリのdirに移動させる。
$ mv -b sample1.txt dir1
タイムスタンプが新しい場合は移動する
ファイルの移動を行う場合、移動先に同名のファイルがすでに存在する場合は、タイムスタンプが新しいものであれば上書きする方法
$ mv -u sample.txt /dir1
移動先のsample1.txtファイルが移動元より新しいため、コピーされない。
複数のディレクトリ・ファイルを移動させる。
dir1とdir2をdir3へ移動させる。
サンプル
$ mv dir1 dir2 dir3
バックアップファイル名に数字をつける
sample1.txtをdirディレクトリ配下に移動する。移動先にsample1.txtが存在するので、数字付きのバックアップファイルを作成する。
サンプル
$ mv --backup=t sample1.txt dir/
作業ディレクトリのすべてのファイル・ディレクトリを移動させる。
ワイルドカードを使用することで、一括で移動させることができるが、シャルで展開されて引数文字数上限にひっかかりエラーになることがあるので、lsをパイプでつないでxargsに渡す方法が確実である。
サンプル
$ mv * ../dir2/ #ARG_MAXに引っかかる可能性がある。
$ ls | xargs mv -t ../dir2