功能解釋
mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。根據mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名爲給定的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。
用法格式和選項說明
用法:mv [選項]... [-T] 源文件 目標文件
或:mv [選項]... 源文件... 目錄
或:mv [選項]... -t 目錄 源文件...
將源文件重命名爲目標文件,或將源文件移動至指定目錄。
長選項必須使用的參數對於短選項時也是必需使用的。
--backup[=CONTROL] 爲每個已存在的目標文件創建備份
-b 類似--backup 但不接受參數
-f, --force 覆蓋前不詢問
-i, --interactive 覆蓋前詢問
-n, --no-clobber 不覆蓋已存在文件
如果您指定了-i、-f、-n 中的多個,僅最後一個生效。
--strip-trailing-slashes 去掉每個源文件參數尾部的斜線
-S, --suffix=SUFFIX 替換常用的備份文件後綴
-t, --target-directory=DIRECTORY 將所有參數指定的源文件或目錄
移動至 指定目錄
-T, --no-target-directory 將目標文件視作普通文件處理
-u, --update 只在源文件文件比目標文件新,或目標文件
不存在時才進行移動
-v, --verbose 詳細顯示進行的步驟
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出
備份文件的後綴爲"~",除非以--suffix 選項或是SIMPLE_BACKUP_SUFFIX
環境變量指定。版本控制的方式可通過--backup 選項或VERSION_CONTROL 環境
變量來選擇。以下是可用的變量值:
none, off 不進行備份(即使使用了--backup 選項)
numbered, t 備份文件加上數字進行排序
existing, nil 若有數字的備份文件已經存在則使用數字,否則使用普通方式備份
simple, never 永遠使用普通方式備份
--backup該選項指定如果目標文件存在時的動作,共有四種備份策略:
1.CONTROL=none或off : 不備份。
2.CONTROL=numbered或t:數字編號的備份
3.CONTROL=existing或nil:如果存在以數字編號的備份,則繼續編號備份m+1...n:
執行mv操作前已存在以數字編號的文件log2.txt.~1~,那麼再次執行將產生log2.txt~2~,以次類推。如果之前沒有以數字編號的文件,則使用下面講到的簡單備份。
4.CONTROL=simple或never:使用簡單備份:在被覆蓋前進行了簡單備份,簡單備份只能有一份,再次被覆蓋時,簡單備份也會被覆蓋。
工作中常見用法
1、文件改名
命令:
mv test.log test1.txt
2、移動文件
命令:
mv test1.txt test3
3、將文件log1.txt,log2.txt,log3.txt移動到目錄test3中。
命令:
mv log1.txt log2.txt log3.txt test3
mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
說明:
mv log1.txt log2.txt log3.txt test3 命令將log1.txt ,log2.txt, log3.txt 三個文件移到 test3目錄中去,mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt 命令又將三個文件移動到test4目錄中去
4、將文件file1改名爲file2,如果file2已經存在,則詢問是否覆蓋
命令:
mv -i log1.txt log2.txt
5、將文件file1改名爲file2,即使file2存在,也是直接覆蓋掉。
命令:
mv -f log3.txt log2.txt
6、目錄的移動
命令:
mv dir1 dir2
說明:
如果目錄dir2不存在,將目錄dir1改名爲dir2;否則,將dir1移動到dir2中。
7、移動當前文件夾下的所有文件到上一級目錄
命令:
mv * ../
8、把當前目錄的一個子目錄裏的文件移動到另一個子目錄裏
命令:
mv test3/*.txt test5
9、文件被覆蓋前做簡單備份,前面加參數-b
命令:
mv log1.txt -b log2.txt
說明:
-b 不接受參數,mv會去讀取環境變量VERSION_CONTROL來作爲備份策略。