Как различать каталоги для разных файлов, но не построчно

16

Я хочу видеть, рекурсивно, файлы, которые отличаются в двух каталогах. Diff может сделать это, но он показывает мне различия между строками, которые я не хочу. Есть ли инструмент, который делает это, или способ сделать это с Diff (я прочитал справочную страницу, я ничего не видел)?

user13743
источник

Ответы:

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
dlamblin
источник
1

Один из способов сделать это -

diff dir1 dir1| grep "diff "

Он все равно будет выполнять построчное сравнение, но сравнение каждого файла начинается с «diff dir1 / file dir2 / file», поэтому при значении «diff» будут отображаться только эти строки (то есть файлы, которые отличаются).

user13743
источник
1

Если вы пользователь emacs, проверьте ediff-каталоги. Вы можете увидеть различия в файлах, а затем углубиться в различия между строками, если вам нужно понять, почему они отличаются.

Даг Харрис
источник