У мене в каталозі є декілька файлів, і я хочу перевірити, чи всі вони унікальні. Для простоти припустимо, що у мене є три файли: foo.txt
, bar.txt
і baz.txt
. Якщо я запускаю цю петлю, я перевірю їх один проти одного:
$ for f in ./*; do for i in ./*; do diff -q "$f" "$i"; done; done
Files bar.txt and baz.txt differ
Files bar.txt and foo.txt differ
Files baz.txt and bar.txt differ
Files baz.txt and foo.txt differ
Files foo.txt and bar.txt differ
Files foo.txt and baz.txt differ
Для сотень файлів, з якими я хочу мати справу, це стало б досить нечитабельним; було б краще перерахувати файли, які відповідають, і тоді я зможу швидко переглянути список і переконатися, що файли відповідають лише собі. Зі сторінки, я б подумав, що -s
варіант виконає це:
$ for f in ./*; do for i in ./*; do diff -s "$f" "$i"; done; done
Files bar.txt and bar.txt are identical
Files baz.txt and baz.txt are identical
Files foo.txt and foo.txt are identical
... однак, він також видає весь вміст будь-яких файлів, які відрізняються. Чи є якийсь спосіб придушити таку поведінку, тому я лише отримую поведінку вище?
Як варіант, чи є якийсь інший інструмент, який може досягти цього ?