How to diff directories for different files, but not line-by-line
Solution 1
What about
diff -rq DIR1 DIR2
or
diff -rqb DIR1 DIR2
-r is recursive
-q is for brief, and will just tell you if the files are different (i.e., it won't show the line-by-line differences)
-b ignores whitespace
Solution 2
You're looking for the -q
option:
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
Solution 3
One way to do this is to do
diff dir1 dir1| grep "diff "
It will still do a line-by-line comparison, but each file comparison begins with "diff dir1/file dir2/file", so grepping "diff " will show only those lines ( i.e. the files that are different ).
Solution 4
If you're an emacs user, check out ediff-directories. You can see the file differences and then drill down into line-by-line differences if you need to see why they're different.
Related videos on Youtube
user1374303
Updated on September 17, 2022Comments
-
user1374303 almost 2 years
I want to see, recursively, files that are different in two directories. Diff can do this, but it shows me the line-by-line differences, which I don't want. Is there a tool that does this, or a way to do this with Diff ( I read the man page, I didn't see anything ) ?
-
Doug Harris over 14 years-b ignores white space changes. Use -q or --brief for the brief option.
-
Doug Harris over 14 yearsAnd I've just upvoted this. I just tried the brief option for the first time. It's very nice output -- shows not just which files are different but identifies which files exist in one directory and not the other.
-
rob over 14 yearsThanks Doug; I guess I originally had my option rotated 180 degrees. ;) Fixed now.