【mv】Linuxコマンド_ファイル・ディレクトリを移動する

LinuxOS上でファイルやディレクトリを移動したい場合に使用するコマンドは「mv」コマンドとなります。




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「mv」コマンドの使い方(Linux)

mvコマンドの書式は第一引数で指定したファイル・ディレクトリを、コマンド最後尾に指定したディレクトリへ移動します。

以下では「test01.txt」というファイルを「test01」ディレクトリ配下へ移動する例となります。
「test01.txt」のファイルは同じディレクトリ内に存在します。

$ ls -lF
合計 0
drwxr-xr-x. 2 root root 6  7月  3 19:02 test01/
-rw-r--r--. 1 root root 0  7月  3 19:09 test01.txt
drwxr-xr-x. 2 root root 6  7月  3 19:02 test02/
drwxr-xr-x. 2 root root 6  7月  3 19:03 test03/

まだ、「test01」配下には何もファイルがない状態です。

$ ls -lF test01/
合計 0

「mv」コマンドを使用し、「test01.txt」ファイルを「test」ディレクトリへ移動します。

$ mv test01.txt test01/

同じディレクトリ内には「test01.txt」がいなくなりました。

$ ls -lF
合計 0
drwxr-xr-x. 2 root root 24  7月  3 19:11 test01/
drwxr-xr-x. 2 root root  6  7月  3 19:02 test02/
drwxr-xr-x. 2 root root  6  7月  3 19:03 test03/

「test01」のディレクトリ配下に「test01.txt」ファイルが移動したことが確認できます。

$ ls -lF test01/
合計 0
-rw-r--r--. 1 root root 0  7月  3 19:09 test01.txt

複数のファイルやディレクトリを移動する

「mv」コマンドは複数のファイルやディレクトリを一括で移動することもできます。
以下のカレントディレクトリにある「test02.txt」ファイルと「test02」、「test03」ディレクトリを「test01」ディレクトリへ移動します。

$ ls -lF
total 12
drwxr-xr-x 2 root root 4096 Jul 11 05:03 test01/
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test02/
-rw-r--r-- 1 root root    0 Jul 11 05:03 test02.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test03/

「test01」ディレクトリ配下にファイルが一つだけある状態です。

$ ls -lF test01/
total 0
-rw-r--r-- 1 root root 0 Jul 11 05:01 test01.txt

以下、3つのファイル・ディレクトリを「test01」ディレクトリへ移動します。

$ mv test02.txt test02/ test03/ test01/

カレントディレクトリ上で該当のファイル・ディレクトリがなくなったことが確認できます。

$ ls -lF
total 4
drwxr-xr-x 4 root root 4096 Jul 11 05:10 test01/

「test01」ディレクトリは以下の該当のファイル・ディレクトリが移動されたことが確認できます。

$ ls -lF test01/
total 8
-rw-r--r-- 1 root root    0 Jul 11 05:01 test01.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test02/
-rw-r--r-- 1 root root    0 Jul 11 05:03 test02.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test03/

※ディレクトリを移動する際は、そのディレクトリの配下のファイル・ディレクトリも移動しますので注意しましょう。

指定したファイル・ディレクトリをカレントディレクトリへ移動する

次に別のディレクトリ配下にあるファイルディレクトリをカレントディレクトリ(現在位置のディレクトリ)へ移動するときは、カレントディレクトリの表記を「.」を使用して実施します。

現在のカレントディレクトリは以下の「test01」ディレクトリのみとなります。

$ ls -lF
total 4
drwxr-xr-x 4 root root 4096 Jul 11 05:10 test01/

「test01」ディレクトリは以下のファイルディレクトリを上記のカレントディレクトリへ移動します。

$ ls -lF test01/
total 8
-rw-r--r-- 1 root root    0 Jul 11 05:01 test01.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test02/
-rw-r--r-- 1 root root    0 Jul 11 05:03 test02.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test03/

「test01.txt」を「test01」ディレクトリへ移動します。

$ mv test01/test01.txt .

カレントディレクトリに「test01.txt」が移動したことが確認できます。

$ ls -lF
total 4
drwxr-xr-x 4 root root 4096 Jul 11 05:22 test01/
-rw-r--r-- 1 root root    0 Jul 11 05:01 test01.txt

次に複数のファイル・ディレクトリをカレントディレクトリへ移動します。

以下の「test01」ディレクトリ配下のファイル・ディレクトリをカレントディレクトリへ移動します。

$ ls -lF test01/
total 8
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test02/
-rw-r--r-- 1 root root    0 Jul 11 05:03 test02.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test03/

該当のファイルやディレクトリはカレントディレクトリから見た際のフルパスで指定します。

$ mv test01/test02.txt test01/test02/ test01/test03/ .

カレントディレクトリにファイルとディレクトリが移動されたことが確認できます。

$ ls -lF
total 12
drwxr-xr-x 2 root root 4096 Jul 11 05:31 test01/
-rw-r--r-- 1 root root    0 Jul 11 05:01 test01.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test02/
-rw-r--r-- 1 root root    0 Jul 11 05:03 test02.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test03/

指定したファイル・ディレクトリを移動した際に上書きする

以下では異動先に同じ名前のファイル・ディレクトリが存在する場合に上書きをするか確認した例となります。

「test01」ディレクトリ配下に「test01.txt」というファイルが存在しています。

$ ls -lF test01/ 
total 0
-rw-r--r-- 1 root root 0 Jul 11 05:01 test01.txt

カレントディレクトリにも同じファイルが存在します。

$ ls -lF 
total 12
drwxr-xr-x 2 root root 4096 Jul 11 05:34 test01/
-rw-r--r-- 1 root root    0 Jul 11 05:34 test01.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test02/
-rw-r--r-- 1 root root    0 Jul 11 05:03 test02.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test03/

該当のファイルを「test01」ディレクトリへ移動します。
このとき、以下のように同じファイルが存在すると「上書き」をするか確認されます。

  • 上書きをする場合:y
  • 上書きをしない場合:n
$ mv test01.txt test01/           
mv: overwrite 'test01/test01.txt'? y

カレントディレクトリ上で「test01.txt」のファイルがないことを確認します。

$ ls -lF
total 12
drwxr-xr-x 2 root root 4096 Jul 11 05:35 test01/
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test02/
-rw-r--r-- 1 root root    0 Jul 11 05:03 test02.txt
drwxr-xr-x 2 root root 4096 Jul 11 05:01 test03/

「test01」ディレクトリ配下のファイルを上書きしえ移動されたことが確認できます。

$ ls -lF test01/
total 0
-rw-r--r-- 1 root root 0 Jul 11 05:34 test01.txt

「mv」コマンドオプション

「mv」コマンドのオプションは以下の通りとなります。

$ mv --help
使用法: 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: <https://www.gnu.org/software/coreutils/>
Report mv translation bugs to <https://translationproject.org/team/>
Full documentation at: <https://www.gnu.org/software/coreutils/mv>
or available locally via: info '(coreutils) mv invocation'

「mv」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!