【Linux文件目錄命令】mv命令

功能解釋

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來作爲備份策略。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章