基礎指令:利用 mv 搬移檔案
本文簡介指令 mv 的使用方法。
簡介
mv 是一個在 GNU Core Utilities 中用於搬移檔案的指令,有兩種用法。
用法 1(搬移至新路徑) 若要將一個位於 SOURCE_PATH 的檔案搬至 TARGET_PATH,可以使用:
mv SOURCE_PATH TARGET_PATH
其中 TARGET_PATH 可以是目前還沒有檔案存在的路徑,也可以是已經有檔案存在的路徑,但不能是目錄或指向目錄的符號連結。(如果是目錄或指向目錄的符號連結的話,會被視為以下的用法 2。)
- 如果
TARGET_PATH目前已經有檔案存在的話,就會被覆蓋。
用法 2(搬移至目錄下) 如果我們想要將一組檔案搬移到一個目標目錄 TARGET_DIR 底下的話,可以使用:
mv SOURCE_PATH... TARGET_DIR
其中 TARGET_DIR 必須是目錄或指向目錄的符號連結。這樣就會將各個位於 SOURCE_PATH 的檔案搬移到 TARGET_DIR 底下。
例如如果我們執行:
$ mv train test data
就會和以下指令具有一樣的效果:
$ mv train data/train
$ mv test data/test
範例
搬移檔案
假設我們在目錄 /home/alice 中,其中有 archive、experiment 兩個子目錄,且在 ./experiment 中有檔案 memo 與 report。
$ pwd
/home/alice
$ find
.
./archive
./experiment
./experiment/memo
./experiment/report
現在我們想將 ./experiment 中的 memo、report 搬移至 ./archive 底下。這時候可以使用 mv 搬移:
$ mv experiment/* archive
備註 上述指令中的 * 會展開,變成:
$ mv experiment/memo experiment/report archive
這時候再檢查一次目錄結構,即可確認檔案已經都搬移到 ./archive 當中。
$ find
.
./archive
./archive/memo
./archive/report
./experiment
搬移目錄
假設我們在目錄 /home/alice 中,其中有 archive、experiment 兩個子目錄,且在 ./experiment 中有檔案 memo 與 report。
$ pwd
/home/alice
$ find
.
./archive
./experiment
./experiment/memo
./experiment/report
現在我們想將整個目錄 ./experiment 搬移至 ./archive 底下。這時候可以使用 mv 搬移:
$ mv experiment archive
備註 上述指令等同於:
$ mv experiment archive/experiment
這時候再檢查目錄結構,即可確認 ./experiment 已經被搬移到 ./archive/experiment。
$ find
.
./archive
./archive/experiment
./archive/experiment/memo
./archive/experiment/report