Rsync 比较两个目录中的文件。仅列出有差异的文件

Rsync compare files in two directories. list only files with difference

我正在尝试使用 rsync 比较两个目录中的文件。

我使用的命令是这样的:

rsync -avcn folder1/* folder2/

问题是结果还列出了所有目录,而我想在文件列表上显示有差异。

我怎样才能做到这一点。

-a (--archive) 标志在这种情况下做的太多了;它还希望使目录元数据(权限、时间戳、用户、组)相等。使用 -r 代替;然后 rsync 将只列出存在于 folder1 但不存在于 folder2.

中的那些目录

如果您确实需要某些 -a 行为,或者您想要忽略目录,即使它们不存在于 folder2 中,您可以通过 grep 过滤输出因为 rsync 输出中的目录名称方便地以斜杠结尾:

rsync -avcn folder1/* folder2/ | grep -v '/$'