Як відрізняти каталоги для різних файлів, але не рядково за рядком


16

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

Відповіді:


29

Що стосовно

diff -rq DIR1 DIR2

або

diff -rqb DIR1 DIR2

-r є рекурсивним

-q коротко, і він просто скаже вам, чи файли відрізняються (тобто не відображатимуться різницеві рядки)

-b ігнорує пробіли


1
-b ігнорує зміни білого простору. Використовуйте -q або --brief для короткого варіанта.
Дуг Харріс

І я просто підтримав це. Я просто спробував короткий варіант вперше. Це дуже приємний вихід - показує не лише, які файли відрізняються, але визначає, які файли існують в одній директорії, а не в іншій.
Doug Harris

Дякую Дугу; Я здогадуюсь, я спочатку мій варіант обертався на 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 / файл dir2 / файл", тож отримання "diff" відображатиме лише ті рядки (тобто файли, які відрізняються).


1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.