Linux移動文件與目錄-mv命令的10個實用例子
mv 命令
mv 命令是一個與cp類似的命令,但是它并非創(chuàng)建文件或目錄的復制品/副本。不管你在使用什么版本的Linux系統(tǒng),mv 都默認安裝在你的Linux系統(tǒng)上了。
來看一下 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
如果你的文件有規(guī)律可循的話那么你就可以使用通配符。比如,為了移除所有以.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. 重命名目錄
上一段的規(guī)則同樣適用于目錄。請看這個例子:
$ mv directory_1/ directory_2/
6. 打印移動信息
當你移動或重命名一大堆文件或目錄時,你可能會想在不去目標位置去查看的情況下知道你自己的命令是否成功地執(zhí)行了。這就要用到-v選項了。
$ mv -v *.txt /home/pungki/office
該方法同樣適用于目錄。
7. 使用交互模式
當你將文件移動到其它位置,而那個位置恰好有同樣的文件,這時 mv 命令會覆蓋掉原來的文件。對于mv的這一行為一般不會有什么提示。如果想產(chǎn)生一個關于覆蓋文件的提示,我們可以使用-i選項。(譯注:通常發(fā)行版會通過alias命令,將-i作為默認選項,所以會有提示。)
假設我們想將 file_1.txt 移動到 /home/pungki/office。同時,/home/pungki/office 目錄下已經(jīng)有file_1.txt文件了。
$ mv -i file_1.txt /home/pungki/office
這個提示會讓我們知道目標位置處file_1.txt的存在。如果我們按y鍵,那么那個文件將會被刪除,否則不會。
8. 使用更新選項
-i 選項會提示我們關于覆蓋文件的提示,而 -u 則只在源文件比目標文件新時才執(zhí)行更新。讓我們看一看下面的例子:
假如 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 目錄下。但是目標地址已經(jīng)有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 選項將不會允許我們覆蓋任何已存在的文件。
繼續(xù)使用第8點中的例子,如果我們將-u 換成 -n同時加上-v選項,那么我們會看到?jīng)]有任何文件移動到了 /home/pungki/office 目錄下。
$ mv -vn *.txt /home/pungki/office
10. 復制時創(chuàng)建備份
默認情況下,移動文件將會覆蓋已存在的目標文件。但是如果我們移動錯了文件而目標文件已經(jīng)被新的文件覆蓋了,這時應該怎么辦才好呢?有沒有一種方法可以恢復之前的文件呢?答案是肯定的。我們可以用-b選項。該選項會在新文件覆蓋舊文件時將舊文件做備份。這里我們還以第8點為例。
$ mv -bv *.txt /home/pungki/office
如截圖中所見,在 /home/pungki/office 目錄下出現(xiàn)了名為file_1.txt~ 和 file_2.txt~ 的文件。那個波浪符號(~)意味著這些文件是備份文件。從它們的屬性中我們可以看到,這些文件比file_1.txt和file_2.txt要舊。
11. 無條件覆蓋已經(jīng)存在的文件
(譯注:這一節(jié)是譯者補充的,原文遺漏了這個重要選項)
當你希望無論如何都覆蓋已經(jīng)存在的文件或目錄時,你可以使用 -f 選項。如果同時指定了 -f 選項和 -i 或 -n 選項,則 -f 選項會覆蓋它們——即不進行任何提示而覆蓋,所以,在使用此參數(shù)時,知道你在做什么。
$ mv -f *.txt /home/pungki/office
總結
移動文件和目錄命令是Linux系統(tǒng)的基本命令。通常你可以通過man mv 或者 mv --help顯示mv的手冊頁以了解更多詳細信息。以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
via: http://linoxide.com/linux-command/mv-command-linux/
譯者:Linchenguang 校對:wxy
本文由 LCTT 原創(chuàng)翻譯,Linux中國 榮譽推出
相關文章
linux下安裝openssl、swoole等擴展的詳細步驟
本文給大家詳細介紹了linux下安裝openssl、swoole等擴展的,本文涉及到編譯安裝和yum安裝的知識點,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧2016-10-10linux服務器系統(tǒng)CentOS、uBuntu、Gentoo、FreeBSD、Debian的比較
最近一直都是在玩ubuntu的,但是做web服務器的CentOS還是經(jīng)常被用到,自己也糊涂了2012-12-12Linux和window環(huán)境下開放防火墻端口的操作
開發(fā)時會遇到在服務器上部署mysql或者es數(shù)據(jù)庫的情況,此時如果訪問數(shù)據(jù)庫就需要開放防火墻端口,本文會講解windows和linux環(huán)境下端口的開放,文章通過圖文結合的方式講解的非常詳細,需要的朋友可以參考下2024-09-09Linux centos7環(huán)境下tomcat安裝教程
這篇文章主要為大家詳細介紹了Linux centos7環(huán)境下tomcat的安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03Apache實現(xiàn)禁止中文瀏覽器訪問與301重定向的方法
這篇文章主要介紹了Apache實現(xiàn)禁止中文瀏覽器訪問與301重定向的方法,通過修改.htaccess的配置來實現(xiàn)非常簡便,需要的朋友可以參考下2016-01-01