如何区分目录以区分不同的文件,而不是逐行


16

我想递归地查看两个目录中不同的文件。Diff可以做到这一点,但是它向我展示了逐行的差异,这是我所不希望的。是否有执行此操作的工具,或使用Diff执行此操作的方法(我阅读了手册页,但没有看到任何内容)?

Answers:


29

关于什么

diff -rq DIR1 DIR2

要么

diff -rqb DIR1 DIR2

-r是递归的

-q是简短的,它只会告诉您文件是否不同(即,不会显示逐行差异)

-b忽略空格


1
-b忽略空格更改。使用-q或--brief作为简要选项。
道格·哈里斯

我刚刚对此表示赞同。我只是第一次尝试使用简短选项。这是非常不错的输出-不仅显示哪些文件不同,而且还识别哪些文件存在于一个目录中,而不是另一个目录中。
道格·哈里斯

谢谢道格;我想我本来可以旋转180度。;)现在修复。

2

您正在寻找的-q选项:

dlamblin$ diff -r a b
diff -r a/a b/a
0a1,2
> 
> 
Only in b: b
dlamblin$ diff -qr a b
Files a/a and b/a differ
Only in b: b

1

一种方法是做

diff dir1 dir1| grep "diff "

它仍然会进行逐行比较,但是每个文件比较都以“ diff dir1 / file dir2 / file”开始,因此grepping“ diff”将仅显示那些行(即,不同的文件)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.