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

來源:互聯網
上載者:User

標籤:byte   成功   odi   覆蓋   命令   images   答案   地方   方法   

熟悉了 複製命令,下一個相關的命令就是 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 移動或重新命名檔案/目錄-mv 的10個實用例子

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.