LinuxOS上でファイルやディレクトリを移動したい場合に使用するコマンドは「mv」コマンドとなります。
「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エンジニアが自宅で学習ができるオンラインスクール比較 | |