在比较文件夹的不同版本时,如何防止“diff -rq”显示新创建的文件?

在比较文件夹的不同版本时,如何防止“diff -rq”显示新创建的文件?

我正在检查两个文件夹(和)diff -rq之间的差异。我不想知道文件夹是否有任何新文件,因为这是预期的。我如何确保这些信息不会出现?ABA

答案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

相关内容