我正在寻找一种简洁的方法来检查文件是否使用cp -u
.
我有一个小 shell 脚本,它更新了相当多的文件。目前,脚本echo
为每个被复制的文件提供了一条小消息。
现在我想以这样一种方式更改脚本,即echo
只有在文件实际更新时才执行。cp -u
如果没有复制文件,我已经检查过是否返回了错误代码,但事实并非如此。
有没有比手动比较文件时间戳更好的方法?
if [ "$(cp -uv source destination)" != "" ]; then echo copied; else echo not copied; fi
Run Code Online (Sandbox Code Playgroud)
更新
匹配 cp 的详细输出中的“->”。仅当它可以成功复制并且您的文件名不包含“->”时才会发生。
if [[ "$(cp -uv source destination)" =~ \-\> ]]; then echo copied; else echo not copied; fi
Run Code Online (Sandbox Code Playgroud)