歡迎光臨
每天分享高質量文章

Linux 移動或重命名檔案/目錄-mv 的10個實用例子

英文:Pungki Arianto,翻譯:Linux中國/Linchenguang

linux.cn/article-2688-1.html


熟悉了 複製命令,下一個相關的命令就是 mv 命令。當你想要將檔案從一個位置移動到另一個地方並且不想複製它,那麼mv 命令是完成這個任務的首選。


初識 mv 命令



mv 命令是一個與cp類似的命令,但是它並非創建檔案或目錄的複製品/副本。不管你在使用什麼版本的Linux系統,mv 都預設安裝在你的Linux系統上了。來看一下 mv 命令在日常操作中的一些例子。


1.移動檔案


移動檔案時需要註意的是檔案的源地址和標的地址必須不同。這裡有個例子,想要將file_1.txt檔案從當前目錄移動到其它目錄,以/home/pungki/為例,語法應該如下:

$ mv file_1.txt /home/pungki/office


如我們所見,當我們移動 file_1.txt 檔案時,先前目錄的 file_1.txt 就被刪除了。


2.移動多個檔案


如果想一次移動多個檔案,我們可以將他們放在一行並用空格分開。

$ mv file_2.txt file_3.txt file_4.txt /home/pungki/office


如果你的檔案有規律可循的話那麼你就可以使用通配符。比如,為了移除所有以.txt為擴展名的檔案,我們可以用下麵的命令:

$ mv *.txt /home/pungki/office


3.移動目錄


不同於複製命令,用 mv 命令移動目錄相當直接。移動目錄你可以使用不帶選項的 mv 命令。看下麵的截圖就一目瞭然了。



4.重命名檔案或目錄


我們也用 mv 命令來重命名檔案或目錄。不過標的位置和源位置必須相同才可以。然後檔案名必須不同。


假定我們當前所在目錄為/home/pungki/Documents,而我們想將file_1.txt重命名為file_2.txt。那麼命令應該如下:

$ mv file_1.txt file_2.txt

如果是絕對路徑,它應該像下麵這樣:

$ mv /home/pungki/Documents/file_1.txt /home/pungki/Documents/file_2.txt


5. 重命名目錄


上一段的規則同樣適用於目錄。請看這個例子:

$ mv directory_1/ directory_2/


6. 打印移動信息


當你移動或重命名一大堆檔案或目錄時,你可能會想在不去標的位置去查看的情況下知道你自己的命令是否成功地執行了。這就要用到-v選項了。

$ mv -v *.txt /home/pungki/office


該方法同樣適用於目錄。



7. 使用交互樣式


當你將檔案移動到其它位置,而那個位置恰好有同樣的檔案,這時 mv 命令會改寫掉原來的檔案。對於mv的這一行為一般不會有什麼提示。如果想產生一個關於改寫檔案的提示,我們可以使用-i選項。(譯註:通常發行版會通過alias命令,將-i作為預設選項,所以會有提示。)

假設我們想將 file_1.txt 移動到 /home/pungki/office。同時,/home/pungki/office 目錄下已經有file_1.txt檔案了。

$ mv -i file_1.txt /home/pungki/office


這個提示會讓我們知道標的位置處file_1.txt的存在。如果我們按y鍵,那麼那個檔案將會被刪除,否則不會。


8. 使用更新選項


-i 選項會提示我們關於改寫檔案的提示,而 -u 則只在源檔案比標的檔案新時才執行更新。讓我們看一看下麵的例子:



假如 file_1.txt 和 file_2.txt有如下特點:

File_1.txt has 84 bytes file size and it last modified time is 12:00

File_2.txt has 0 bytes file size and it last modified time is 11:59

我們想將它們移動到 /home/pungki/office 目錄下。但是標的地址已經有file_1.txt和file_2.txt了。

我們用下麵的命令將file_1.txt 和file_2.txt從當前目錄移動到/home/pungki/office

$ mv -uv *.txt /home/pungki/office


可以看到這些檔案被移動了。能移動這些檔案是因為它們最近的修改時間戳比 /home/pungki/office 目錄中的檔案新。

9.不要改寫任何已存在的檔案


如果-i選項詢問我們是否要改寫檔案,那麼 -n 選項將不會允許我們改寫任何已存在的檔案。

繼續使用第8點中的例子,如果我們將-u 換成 -n同時加上-v選項,那麼我們會看到沒有任何檔案移動到了 /home/pungki/office 目錄下。

$ mv -vn *.txt /home/pungki/office


10. 複製時創建備份


預設情況下,移動檔案將會改寫已存在的標的檔案。但是如果我們移動錯了檔案而標的檔案已經被新的檔案改寫了,這時應該怎麼辦才好呢?有沒有一種方法可以恢復之前的檔案呢?答案是肯定的。我們可以用-b選項。該選項會在新檔案改寫舊檔案時將舊檔案做備份。這裡我們還以第8點為例。

$ mv -bv *.txt /home/pungki/office


如截圖中所見,在 /home/pungki/office 目錄下出現了名為file_1.txt~ 和 file_2.txt~ 的檔案。那個波浪符號(~)意味著這些檔案是備份檔案。從它們的屬性中我們可以看到,這些檔案比file_1.txt和file_2.txt要舊。


11. 無條件改寫已經存在的檔案


(譯註:這一節是譯者補充的,原文遺漏了這個重要選項)


當你希望無論如何都改寫已經存在的檔案或目錄時,你可以使用 -f 選項。如果同時指定了 -f 選項和 -i 或 -n 選項,則 -f 選項會改寫它們——即不進行任何提示而改寫,所以,在使用此引數時,知道你在做什麼。

$ mv -f *.txt /home/pungki/office


總結


移動檔案和目錄命令是Linux系統的基本命令。通常你可以通過man mv 或者 mv –help顯示mv的手冊頁以瞭解更多詳細信息。


●本文編號406,以後想閱讀這篇文章直接輸入406即可

●輸入m獲取到文章目錄

推薦↓↓↓

運維

更多推薦18個技術類公眾微信

涵蓋:程式人生、演算法與資料結構、黑客技術與網絡安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

赞(0)

分享創造快樂