Linux 如何使用diff比较两个目录,同时忽略不存在的文件?

Linux 如何使用diff比较两个目录,同时忽略不存在的文件?,linux,diff,compare,Linux,Diff,Compare,我想使用diff比较不同文件的两个目录,使用-q选项进行简短输出。但是,输出中有很多文件,它们只存在于一个目录中,而不存在于另一个目录中。我是否可以强制diff(或使用其他工具)仅显示两个目录中不同且存在的文件 我当前使用的命令是 diff -q <dir1> <dir2> diff-q 任何想法都值得欣赏。它会打印出一系列类似于 Only in dir1/blah: blah 对吧??所以只要把它们和格雷普一起扔掉就行了 LC_ALL=C diff ... | g

我想使用
diff
比较不同文件的两个目录,使用
-q
选项进行简短输出。但是,输出中有很多文件,它们只存在于一个目录中,而不存在于另一个目录中。我是否可以强制
diff
(或使用其他工具)仅显示两个目录中不同且存在的文件

我当前使用的命令是

diff -q <dir1> <dir2>
diff-q

任何想法都值得欣赏。

它会打印出一系列类似于

Only in dir1/blah: blah
对吧??所以只要把它们和格雷普一起扔掉就行了

LC_ALL=C diff ... | grep -v '^Only in'

LC_ALL=C的
LC_ALL=C
是为了确保打印标准的“仅在”消息,而不是任何翻译。

我发现的最简单的方法是使用:

diff -N -q <dir1> <dir2>
diff-N-q

我试过了,但是
-N
选项只是将“仅在”更改为“文件不同”。它实际上并没有消除“Only in”行,这在实现上肯定是有区别的。我使用的是Mac
diff
,它给了我:
$diff-q1/2/公共子目录:1/文件和2/文件仅在1/:test$diff-q-n1/2/公共子目录:1/文件和2/文件