mv命令,move的縮寫,顧名思義是移動文件的意思。其實就相當於剪切操作,而前面說的cp命令,就是復制粘貼,這兩個有什么區別想必不用多說。
基本使用
使用格式
mv 源文件 目標文件
我的根目錄下有 a 目錄和一個 readme.txt 文件,現在我要把readme.txt文件移動到 a目錄里:
//查看a目錄結構 tree a //結果 a └── b ├── c │ └── 123.txt └── test.txt
移動:
mv readme.txt ./a
驗證:
tree a //結果 a ├── b │ ├── c │ │ └── 123.txt │ └── test.txt └── readme.txt
此時,根目錄下的 readme.txt文件也不見了,想想剪切操作就明白了。
重命名
mv 命令還可以用來重命名,這聽起來很奇怪,移動操作跟重命名有什么關系,其實回想cp命令也不難理解了,在移動過程中,改變名稱,不改變位置,這樣不就相當於重命名了。
//進入a目錄 cd a //將readme.txt重命名為demo.txt mv readme.txt demo.txt //tree . ├── b │ ├── c │ │ └── 123.txt │ └── test.txt └── demo.txt
覆蓋提示
現在假設一個場景,我們在 a目錄里,需要將 b目錄里的 test.txt文件移動到 a目錄下,並重命名為 demo.txt,我們知道 a目錄下已有了一個demo.txt文件,這樣的操作會覆蓋掉原有的 demo.txt文件,可以在自己的環境測試,我的環境默認就會有覆蓋提示:
mv b/test.txt ./demo.txt mv: overwrite ‘./demo.txt’?
為了安全性,應該都具備提示,mv 提供了一個選項 -i 可以保證每次覆蓋前都提示,這跟 cp命令差一樣。不管環境默認有沒有提示,還是盡量加上 -i 吧:
mv -i b/test.txt ./demo.txt mv: overwrite ‘./demo.txt’? y tree . ├── b │ └── c │ └── 123.txt └── demo.txt