Cp

cp:當源和目標相同時防止錯誤

  • June 10, 2017

你能告訴 cp (GNU coreutils) 防止報告錯誤:

$ echo 1 > foo
$ cp foo foo

目前,這報告:

cp: 'foo' and 'foo' are the same file

這是非常明智的,但不一定總是會出錯。$source從概念上講,如果您正在從to複製文件$dest,如果您已經在$dest目錄中,那麼基本上複製已經通過構造完成;因此,根據上下文,這不一定會報告為錯誤。我在手冊頁中找不到任何內容。--update儘管聽起來可能,但該選項不起作用。

顯然,我可以通過多種方式解決這個問題,但我想知道 cp 是否可以立即做到這一點。

這對於 GNU coreutils 是不可能的(從 coreutils 8.27 開始)。文件沒有提到它,原始碼也沒有顯示任何未記錄的方式。相同文件性的測試僅在創建硬連結時或在某些情況下文件是指向同一目的地的符號連結時才允許。

Rsync 允許它,所以一個簡單的解決方案是使用rsync而不是cp.

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