
我正在尋找一種簡潔的方法來檢查文件是否是使用cp -u
.
我有一個小的 shell 腳本,可以更新相當多的檔案。目前,腳本echo
為每個被複製的檔案提供一條小訊息。
現在我想以這樣的方式更改腳本,以便僅echo
在文件實際更新時執行。我檢查過如果cp -u
不複製文件是否返回錯誤代碼,但事實並非如此。
有沒有比手動比較文件時間戳記更好的方法?
答案1
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