如何确定cp -u是否实际复制了文件?

Modified on: Sat, 30 Jun 2018 11:58:30 +0800

正如标题所说,我正在寻找一种简洁的方法来检查是否使用cp -u复制了一个文件。

我有一个小脚本脚本可以更新很多文件。目前脚本echo为每个被复制的文件发送一条消息。

现在我想更改脚本,只有在文件实际更新时才会执行echo。我检查了cp -u是否返回了错误代码,如果它没有复制文件,但事实并非如此。

有没有比手动比较文件的时间戳更好的方法?

作者:Braiam,Zeeker

最佳答案

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
作者:,Cyrus

相关问答

添加新评论