Cp
如何確定 cp -u 是否實際複製了文件?
我正在尋找一種簡潔的方法來檢查文件是否使用
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