【 mv 】 ファイルやディレクトリの移動 【 Linuxコマンドまとめ 】

「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で動作を確認