Shell

mv:僅在目標不存在時移動文件

  • April 24, 2022

我可以以僅在不存在mv file1 file2時才移動的方式使用嗎?file1``file2``file2

我試過了

yes n | mv -i file1 file2

(這讓我們mv詢問是否應該覆蓋 file2 並自動回答否)但除了濫用-i它之外,它也不會給我很好的錯誤程式碼(如果移動總是 141 而不是 0,如果不移動則其他東西)

mv -vn file1 file2. 這個命令會做你想做的事。-v如果你願意,你可以跳過。

-v讓它變得冗長 - 如果移動文件,mv 會告訴你它移動了文件(很有用,因為文件可能不會被移動)

-n僅當 file2 不存在時才移動。

但是請注意,這不是ThomasDickey提到的POSIX 。

mv -n

man mvGNU 系統上:

-n, –no-clobber

不覆蓋現有文件

在 FreeBSD 系統上:

-n不要覆蓋現有文件。(-n 選項覆蓋任何以前的 -f 或 -i 選項。)

引用自:https://unix.stackexchange.com/questions/248544