「Linuxコマンドまとめ」カテゴリでは、Linuxのコマンドについて、基本的な実行例とオプションを分かりやすくまとめます。
「mv」はファイルやディレクトリの移動と名前の変更を行うコマンドです。
コピーを行うcpと並んで、非常によく使われる基本的なコマンドです。
mvコマンドの基本的な使い方
mvコマンドの基本書式は、以下の通りです。
mv [オプション] 移動元 移動先
まずは、オプションを用いない基本的な使い方を見ていきましょう。
別のディレクトリに同じ名前で移動する
ファイルを別のディレクトリに移動する場合は、移動先にディレクトリを指定します。以下は、file1.txtを/tmpディレクトリに移動する例です。
mv file1.txt /tmp
このコマンドを実行すると、カレントディレクトリからfile1.txtは無くなり、/tmp/file1.txtに移動します。以下のように、ファイル名を指定しても同じ動作になります。
mv file1.txt /tmp/file1.txt
また、ディレクトリであってもファイルと同じように移動できます。以下は、dir1を/tmpに移動する例です。
mv dir1 /tmp
別のディレクトリに違う名前に移動する
別のディレクトリに違う名前で移動するには、ファイル名を別のものに指定すればいいだけです。以下は、file1.txtを/tmp/file1_moved.txtに移動する例です。
mv file1.txt /tmp/file1_moved.txt
ディレクトリも同じように移動できます。
mv dir1 /tmp/dir1_moved
同じディレクトリの違う名前に移動する(=ファイル名を変更する)
GUIのファイルマネージャーでは「ファイル名を変更する」という操作ができますが、Linuxのシェルではmvコマンドを使って「同じディレクトリの別の名前のファイルに移動する」という操作をします。
以下のコマンドを実行すると、file1.txtが同じディレクトリのfile1_moved.txtに移動(名前変更)します。
mv file1.txt file1_moved.txt
以下は、ディレクトリdir1をdir1_movedに移動(名前変更)する例です。
mv dir1 dir1_moved
複数のファイルを移動する
mvコマンドは、複数のファイルやディレクトリを一度に移動することができます。
以下は、file1.txtとfile2.txtを一度に/tmpに移動する例です。
mv file1.txt file2.txt /tmp
移動先のディレクトリに同じ名前のファイルが存在する場合、上書きされるので注意が必要です。
移動先のディレクトリに同じ名前のディレクトリが存在する場合、移動先のディレクトリが空なら上書きされます。空でなければエラーとなります。
パス名の展開を利用して複数のファイルを移動する
複数のファイルを移動する際、よく使われるのが「シェルによるパス名の展開」です。たとえば以下のコマンドを実行すると、カレントディレクトリにある「.txt」で終わるファイルをすべて、/tmpに移動します。
mv *.txt /tmp
より複雑な条件を指定してマッチングさせることもできます。シェルによるパス名の展開については、以下の記事を参照してください。
mvコマンドの主なオプション
- -i
- ファイルを上書きする前に確認します。このオプションを付けないと、既存のファイルにmvした時、確認なしに上書きされます。
- -f
- ファイルを上書きする前に確認しません。リードオンリー属性がついているファイルも、確認せず上書きされます。
mvコマンドのヘルプ
使用法: mv [OPTION]... [-T] SOURCE DEST または: mv [OPTION]... SOURCE... DIRECTORY または: mv [OPTION]... -t DIRECTORY SOURCE... Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. Mandatory arguments to long options are mandatory for short options too. --backup[=CONTROL] ファイルを上書きする際に、バックアップを作成する -b --backup 同様だが、引数をとらない -f, --force 上書きの前に確認を行わない -i, --interactive 上書きの前に確認を行う -n, --no-clobber 既存のファイルを上書きしない -i, -f, -n を一つ以上使用した場合、最後のオプションが使用されます。 --strip-trailing-slashes 各 SOURCE 引数の最後にあるスラッシュ (/) を取り除く -S, --suffix=SUFFIX 通常のバックアップ接尾辞を SUFFIX で上書きする -t, --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY -T, --no-target-directory treat DEST as a normal file -u, --update move only when the SOURCE file is newer than the destination file or when the destination file is missing -v, --verbose explain what is being done -Z, --context set SELinux security context of destination file to default type --help この使い方を表示して終了する --version バージョン情報を表示して終了する The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX. The version control method may be selected via the --backup option or through the VERSION_CONTROL environment variable. Here are the values: none, off バックアップを作成しない (--backup を付けた時でも) numbered, t 番号付きバックアップを作成する existing, nil 番号付きバックアップがあれば番号付き、 そうでなければ、simple で作成する simple, never 常に簡易バックアップを作成 GNU coreutils online help: <http://www.gnu.org/software/coreutils/> mv の翻訳に関するバグは <http://translationproject.org/team/ja.html> に連絡してください。 Full documentation at: <http://www.gnu.org/software/coreutils/mv> or available locally via: info '(coreutils) mv invocation'
更新履歴
2017-10-27 Ubuntu 17.10で動作を確認
コメント