查出rsync是否修改了目标?

查出rsync是否修改了目标?

我的程序将多个目录从源复制/同步到目标,每个目录都使用 rsync。对于每个目录,如果目标中的版本与源不同,因此 rsync 修改了目标,我想用“目录 X 已同步到目标”之类的消息通知用户。另一方面,如果目标版本已经与目标相同,我可以跳过显示此消息,因为目标没有更改。

退出状态和 -n 选项不区分这两种情况。除了解析 -v 的输出之外,还有其他方法让 rsync 提供此信息吗?

答案1

这可以完成这项工作:

rsync --log-format=%f ...

请注意,只要任何属性发生更改,rsync 都会输出文件,而不仅仅是文件内容更新时。

还有一个-i选项(或--log-format=%i)可逐项列出所有更改。有关输出格式的详细信息,请参阅 rsync 手册页。

相关内容