我正在检查两个文件夹(和)diff -rq
之间的差异。我不想知道文件夹是否有任何新文件,因为这是预期的。我如何确保这些信息不会出现?A
B
A
答案1
现在我在实际的键盘上扩展我的评论:
做你想做的事情的唯一方法是单独比较文件。我们可以结合起来find
做到xargs
这一点,如下所示:
(cd B && find . -type f -print0) | xargs -0 -IPATH diff -q A/PATH B/PATH
这会生成 B 中相对于顶级目录的所有文件的列表,并使用 xargs 运行一系列diff -q
命令,将 B 中的文件与 A 中的相同路径进行比较。
当目录具有相同的内容时,它不会产生输出,返回代码为0
:
$ (cd B && find . -type f -print0) | xargs -0 -IPATH diff -q A/PATH B/PATH
$ echo $?
0
当存在差异时,diff -q
向控制台打印一条消息,返回码为123
:
$ (cd B && find . -type f -print0) | xargs -0 -IPATH diff -q A/PATH B/PATH
Files A/./dir2/dir3/file1 and B/./dir2/dir3/file1 differ
$ echo $?
123