Linux 中 mv 命令是 move 的縮寫, 可以用來移動檔案或者將檔案改名, 是 Linux 系統下常用的命令, 經常用來備份檔案或者目錄.
命令格式 :
mv [option]… [-T] source destination
mv [option]… source1 source2… directory
mv [option]… -t directory source
命令功能 : 將原始檔重新命名為目標檔案, 或將原始檔移動至指定目錄
常見引數 :
-b 若需覆蓋檔案, 則覆蓋前先行備份;
-f/–force 如果目標檔案已經存在, 不需要詢問直接覆蓋;
-i/interactive 若目標檔案已經存在, 就會詢問是否覆蓋;
-n/–no-clobber 不覆蓋已存在的檔案, 即目標檔案已經存在, 則不會發生變化;
注意: 若同時指定-i 、-f 、-n 中的多個, 僅最後一個生效.
-S/–suffix=SUFFIX 替換常用的備份檔案字尾;
-t/–target-directory=Directroy 將所有引數指定的原始檔或目錄移動至指定目錄;
-T/–no-target-directory 將目標檔案視作普通檔案處理;
-u/–update 只在原始檔比目標檔案新, 或目標檔案不存在時才進行移動;
-v/–verbose 詳細顯示進行的步驟;
–help 顯示幫助資訊並退出;
–version 顯示版本資訊並退出;
注: 備份檔案的字尾為”~”, 除非一–suffix 選項或是 SIMPLE_SUFFIX 環境變數指定. 版本控制的方式可通過–backup 選項或 VERSION_CONTROL 環境變數來選擇.
以下是可用的變數值:
none,off 不進行備份, 即使使用了–backup 選項;
numbered,t 備份檔案加上數字進行排序;
existing,nil 若有數字的備份檔案已經存在則使用數字, 否則使用普通方式備份;
simple,never 永遠使用普通方式備份;
常見案例:
<1>檔案重新命名
例如 : 01.txt 改名改為 02.txt
# mv 01.txt 02.txt
若 02.txt 存在, 則覆蓋; 若加上-b 選項, 則覆蓋前先備份 02.txt. 即相應目錄下會出現 02.txt~的備份檔案.
<2>移動單個或多個檔案到指定目錄
例如 : 移動 01.txt 02.txt 到 test 目錄下
# mv 01.txt 02.txt test
<3>移動當前目錄下所有檔案到上一級目錄下
例如 : 將/test/test2 中所有檔案移動到 test 下
# cd /test/test2
# mv * ../
其實, 我們也完全通過絕對路徑書寫, 如下:
# mv /test/test2/* /test