首頁 > linux教程 > Linux文件和目錄管理 閱讀:0更新時間:2020-03-28 00:55:35

Linux mv命令:移動文件或改名

mv 命令(move 的縮寫),既可以在不同的目錄之間移動文件或目錄,也可以對文件和目錄進行重命名。該命令的基本格式如下:

[root@localhost ~]# mv 【選項】 源文件 目標文件

選項:
  • -f:強制覆蓋,如果目標文件已經存在,則不詢問,直接強制覆蓋;
  • -i:交互移動,如果目標文件已經存在,則詢問用戶是否覆蓋(默認選項);
  • -n:如果目標文件已經存在,則不會覆蓋移動,而且不詢問用戶;
  • -v:顯示文件或目錄的移動過程;
  • -u:若目標文件已經存在,但兩者相比,源文件更新,則會對目標文件進行升級;

需要注意的是,同 rm 命令類似,mv 命令也是一個具有破壞性的命令,如果使用不當,很可能給系統帶來災難性的后果。

【例 1】移動文件或目錄。

[root@localhost ~]# mv cangls /tmp
#移動之后,源文件會被刪除,類似剪切
[root@localhost ~]# mkdir movie
[root@localhost ~]# mv movie/ /tmp
#也可以移動目錄。和 rm、cp 不同的是,mv 移動目錄不需要加入 "-r" 選項

如果移動的目標位置已經存在同名的文件,則同樣會提示是否覆蓋,因為 mv 命令默認執行的也是 "mv -i" 的別名,例如:

[root@localhost ~]# touch cangls
#重新建立文件
[root@localhost ~]# mv cangls /tmp
mv:縣否覆蓋"tmp/cangls"?y
#由于 /tmp 目錄下已經存在 cangls 文件,所以會提示是否覆蓋,需要手工輸入 y 覆蓋移動


【例 2】強制移動。
之前說過,如果目標目錄下已經存在同名文件,則會提示是否覆蓋,需要手工確認。這時如果移動的同名文件較多,則需要一個一個文件進行確認,很不方便。

如果我們確認需要覆蓋已經存在的同名文件,則可以使用 "-f" 選項進行強制移動,這就不再需要用戶手工確認了。例如:

[root@localhost ~]# touch cangls
#重新建立文件
[root@localhost ~]# mv -f cangls /tmp
#就算 /tmp/ 目錄下已經存在同名的文件,由于"-f"選項的作用,所以會強制覆蓋


【例 3】不覆蓋移動。
既然可以強制覆蓋移動,那也有可能需要不覆蓋的移動。如果需要移動幾百個同名文件,但是不想覆蓋,這時就需要 "-n" 選項的幫助了。例如:

[root@localhost ~]# ls /tmp
/tmp/bols /tmp/cangls
#在/tmp/目錄下已經存在bols、cangls文件了
[root@localhost ~]# mv -vn bols cangls lmls /tmp/、
"lmls"->"/tmp/lmls"
#再向 /tmp/ 目錄中移動同名文件,如果使用了 "-n" 選項,則可以看到只移動了 lmls,而同名的 bols 和 cangls 并沒有移動("-v" 選項用于顯示移動過程)


【例 4】改名。
如果源文件和目標文件在同一目錄中,那就是改名。例如:

[root@localhost ~]# mv bols lmls
#把 bols 改名為 lmls

目錄也可以按照同樣的方法改名。

【例 5】顯示移動過程。
如果我們想要知道在移動過程中到底有哪些文件進行了移動,則可以使用 "-v" 選項來查看詳細的移動信息。例如:

[root@localhost ~]# touch test1.txt test2.txt test3.txt
#建立三個測試文件
[root@localhost ~]# mv -v *.txt /tmp
"test1.txt" -> "/tmp/test1.txt"
"test2.txt" -> "/tmp/test2.txt"
"test3.txt" -> "/tmp/test3.txt"
#加入"-v"選項,可以看到有哪些文件進行了移動

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩