Linux 移動或重新命名檔案/目錄-mv 的10個實用例子
熟悉了 ,下一個相關的命令就是 mv 命令。當你想要將檔案從一個位置移動到另一個地方並且不想複製它,那麼mv 命令是完成這個任務的首選。
初識 mv 命令
mv 命令是一個與cp類似的命令,但是它並非建立檔案或目錄的複製品/副本。不管你在使用什麼版本的Linux系統,mv 都預設安裝在你的Linux系統上了。來看一下 mv 命令在日常操作中的一些例子。
1.移動檔案
移動檔案時需要注意的是檔案的源地址和目標地址必須不同。這裡有個例子,想要將file_1.txt檔案從當前目錄移動到其它目錄,以/home/pungki/為例,語法應該如下:
$ mv file_1.txt /home/pungki/office
mv command
如我們所見,當我們移動 file_1.txt 檔案時,先前目錄的 file_1.txt 就被刪除了。
2.移動多個檔案
如果想一次移動多個檔案,我們可以將他們放在一行並用空格分開。
$ mv file_2.txt file_3.txt file_4.txt /home/pungki/office
Move multiple files
如果你的檔案有規律可循的話那麼你就可以使用萬用字元。比如,為了移除所有以.txt為副檔名的檔案,我們可以用下面的命令:
$ mv *.txt /home/pungki/office
Move using pattern
3.移動目錄
不同於複製命令,用 mv 命令移動目錄相當直接。移動目錄你可以使用不帶選項的 mv 命令。看下面的截圖就一目瞭然了。
Moving directory
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
Renaming file
5. 重新命名目錄
上一段的規則同樣適用於目錄。請看這個例子:
$ mv directory_1/ directory_2/
Renaming directory
6. 列印移動資訊
當你移動或重新命名一大堆檔案或目錄時,你可能會想在不去目標位置去檢視的情況下知道你自己的命令是否成功地執行了。這就要用到-v選項了。
$ mv -v *.txt /home/pungki/office
mv with verbose mode
該方法同樣適用於目錄。
mv directory with verbose mode
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
mv with interactive mode
這個提示會讓我們知道目標位置處file_1.txt的存在。如果我們按y鍵,那麼那個檔案將會被刪除,否則不會。
8. 使用更新選項
-i 選項會提示我們關於覆蓋檔案的提示,而 -u 則只在原始檔比目標檔案新時才執行更新。讓我們看一看下面的例子:
Update only newer
假如 file_1.txt 和 file_2.txt有如下特點:
File_1.txt has 84 bytes file size and it last modified time is 12:00File_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
No overwrite
10. 複製時建立備份
預設情況下,移動檔案將會覆蓋已存在的目標檔案。但是如果我們移動錯了檔案而目標檔案已經被新的檔案覆蓋了,這時應該怎麼辦才好呢?有沒有一種方法可以恢復之前的檔案呢?答案是肯定的。我們可以用-b選項。該選項會在新檔案覆蓋舊檔案時將舊檔案做備份。這裡我們還以第8點為例。
$ mv -bv *.txt /home/pungki/office
Backup option
如截圖中所見,在 /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的手冊頁以瞭解更多詳細資訊。
編譯自:
原創: 譯者: Chenguang
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2768/viewspace-2814631/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mv 命令 – 移動或改名檔案
- 日誌檔案的移動或重新命名
- linux沒有那個檔案或目錄Linux
- C語言rename()函式:重新命名檔案或目錄C語言函式
- linux 刪除檔案或目錄——rmLinux
- linux查詢檔案或目錄命令Linux
- Linux rm命令:刪除檔案或目錄Linux
- Linux排查磁碟大檔案或大目錄Linux
- linux命令之----cp命令用於複製檔案或目錄Linux
- 刪除檔案或目錄提示"檔案或目錄無法刪除"的解決方法!
- 【Git】取消追蹤多個檔案或目錄Git
- 不用 mv 命令也能移動檔案的方法
- Linux tar壓縮時排除某個目錄或檔案的引數Linux
- Linux使用:檔案或目錄的許可權設定Linux
- 【linux】給目錄或檔案加i、a許可權Linux
- Linux使用inotify-tools監聽檔案或目錄Linux
- Linux 使用 inotify 監控檔案或目錄變化Linux
- ln 覆蓋普通檔案或目錄
- Linux檔案或目錄顏色一般情況Linux
- Linux tar命令exclude選項排除指定檔案或目錄Linux
- Linux 檔案與目錄Linux
- Linux — 檔案、目錄管理Linux
- Linux用inotify監聽檔案和目錄Linux
- Linux系統下如何修改檔案或目錄的許可權?Linux
- Linux改變檔案或目錄的訪問許可權命令Linux訪問許可權
- Linux 檔案系統的目錄Linux
- solaris10_快速檢視哪些目錄或檔案佔用根分割槽_方法
- Linux學習初期,怎麼給檔案或目錄命名呢?Linux
- Linux學習筆記--rm命令(刪除檔案或目錄)Linux筆記
- linux2-cd 移動目錄Linux
- 利用php實現檔案遷移重新命名PHP
- 一個自動遞增生成目錄和檔案的cop檔案類
- Linux命令:改變檔案或目錄的訪問許可權(轉)Linux訪問許可權
- Linux檔案及目錄管理Linux
- Linux檔案系統、目錄Linux
- 【Linux】檔案系統目錄Linux
- Linux 檔案與目錄管理Linux
- Linux檔案和目錄管理Linux