Cp

如何確定 cp -u 是否實際複製了文件?

  • December 20, 2018

我正在尋找一種簡潔的方法來檢查文件是否使用cp -u.

我有一個小 shell 腳本,它更新了相當多的文件。目前,腳本echo為每個被複製的文件提供一條小消息。

現在我想以這樣一種方式更改腳本,即echo只有在文件實際更新時才會執行。cp -u如果它沒有復製文件,我已經檢查過是否返回錯誤程式碼,但事實並非如此。

有沒有比手動比較文件的時間戳更好的方法?

if [ "$(cp -uv source destination)" != "" ]; then echo copied; else echo not copied; fi

更新

在 cp 的詳細輸出中匹配“->”。僅當它可以成功複製並且您的文件名不包含“->”時才會發生。

if [[ "$(cp -uv source destination)" =~ \-\> ]]; then echo copied; else echo not copied; fi

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