Saya memiliki sejumlah file dalam direktori, dan saya ingin memeriksa apakah semuanya unik. Untuk mempermudah, katakanlah saya memiliki tiga file: foo.txt
, bar.txt
dan baz.txt
. Jika saya menjalankan loop ini, saya akan memeriksa semuanya terhadap satu sama lain:
$ 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
Untuk ratusan file yang ingin saya tangani, ini akan menjadi sangat tidak dapat dibaca; akan lebih baik untuk daftar file yang melakukan pertandingan, dan kemudian saya dapat melihat daftar itu dengan cepat dan memastikan bahwa file hanya cocok diri mereka sendiri. Dari halaman manual, saya akan berpikir bahwa -s
opsi akan mencapai ini:
$ 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
... Namun, sebenarnya ia juga mencetak seluruh isi dari setiap file yang berbeda. Apakah ada cara untuk menekan perilaku ini, jadi saya hanya mendapatkan perilaku di atas?
Atau, apakah ada alat lain yang dapat melakukan ini ?