shell命令之mv的具體使用
操作系統(tǒng)為 macOS 10.12.4
shell 的 mv 命令為移動(moving)的意思,實(shí)際可分為文件間的移動,文件到目錄的移動,目錄到目錄的移動。
mv參數(shù)設(shè)置與運(yùn)行結(jié)果
命令格式 | 運(yùn)行結(jié)果 |
---|---|
mv 文件名 文件名 | 將源文件名改為目標(biāo)文件名 |
mv 文件名 目錄名 | 將文件移動到目標(biāo)目錄v |
mv 目錄名 目錄名 | 目標(biāo)目錄已存在,將源目錄移動到目標(biāo)目錄;目標(biāo)目錄不存在則改名 |
mv 目錄名 文件名 | 出錯 |
文件間的移動
mv source_file target_file
把文件 source_file 移動到 target_file,實(shí)際的意思就是重命名,其他不變,例如 inode 信息,最近修改時(shí)間點(diǎn)等等不變。
實(shí)際上,并沒有 rename 命令,只有 rename 函數(shù)。
如果文件 target_file 已經(jīng)存在呢,可以加上 -i 參數(shù),系統(tǒng)會提示是否覆蓋, 也可以加上 -n 參數(shù),不讓覆蓋的行為發(fā)生。
-f 參數(shù)是強(qiáng)制覆蓋,而且沒有任何提示。 這與 mv 不帶任何參數(shù)的效果一樣。
文件到目錄的移動
mv source_file target_directory
這個就比較簡單了。 但是如果目錄 target_directory 不存在,那么移動是無法完成的。
目錄到目錄的移動
mv source_directory target_directory
這就要分為兩類
- 如果target_directory不存在,這就相當(dāng)于目錄重全名。
- 如果target_directory存在,就會把整個 source_directory 目錄移動到 target_directory 目錄中,相當(dāng)于剪切整個目錄,然后粘貼。
但是,如果想把 source_directory 目錄中的內(nèi)容移動到 target_directory 呢,mv source_directory/* target_directory
實(shí)例
# 將文件 aaa 更名為 bbb $ mv aaa bbb # 將文件test2 test3移到目錄testdr中 $ mv test2 test3 testdr # 將info目錄放入logs目錄中。注意,如果logs目錄不存在,則該命令將info改名為logs。 mv info/ logs # 將/usr/student下的所有文件和目錄移到當(dāng)前目錄下,命令行為: $ mv /usr/student/* .
思考
mv 命令其實(shí)是用 cp 和 rm 來完成的。
到此這篇關(guān)于shell命令之mv的具體使用的文章就介紹到這了,更多相關(guān)shell命令 mv內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell實(shí)現(xiàn)四則運(yùn)算簡單方法
在剛剛學(xué)習(xí)寫shell 批處理時(shí)候,進(jìn)行邏輯運(yùn)算中,少不了需要進(jìn)行基礎(chǔ)的:四則運(yùn)算,這里說說在linux shell 里面簡單的實(shí)現(xiàn)方法2014-03-03shell 遞歸遍歷目錄下的所有文件并統(tǒng)一改名的方法
今天小編就為大家分享一篇shell 遞歸遍歷目錄下的所有文件并統(tǒng)一改名的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Shell 命令啟動Docker Container的實(shí)現(xiàn)
本文主要介紹了Shell 命令啟動Docker Container的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02