Cara membedakan direktori untuk file yang berbeda, tetapi tidak baris demi baris

16

Saya ingin melihat, secara rekursif, file yang berbeda dalam dua direktori. Diff dapat melakukan ini, tetapi ini menunjukkan kepada saya perbedaan garis demi garis, yang tidak saya inginkan. Apakah ada alat yang melakukan ini, atau cara untuk melakukan ini dengan Diff (saya membaca halaman manual, saya tidak melihat apa-apa)?

pengguna13743
sumber

Jawaban:

29

Bagaimana dengan

diff -rq DIR1 DIR2

atau

diff -rqb DIR1 DIR2

-r bersifat rekursif

-q adalah untuk singkat, dan hanya akan memberi tahu Anda jika file berbeda (yaitu, itu tidak akan menampilkan perbedaan baris demi baris)

-b mengabaikan spasi

rampok
sumber
1
-b mengabaikan perubahan ruang putih. Gunakan -q atau --brief untuk opsi singkat.
Doug Harris
Dan saya baru saja membatalkan ini. Saya baru saja mencoba opsi singkat untuk pertama kalinya. Ini keluaran yang sangat bagus - menunjukkan tidak hanya file mana yang berbeda tetapi mengidentifikasi file mana yang ada dalam satu direktori dan bukan yang lain.
Doug Harris
Terima kasih, Doug; Saya kira saya awalnya memiliki pilihan saya diputar 180 derajat. ;) Diperbaiki sekarang.
merampok
2

Anda sedang mencari -qopsi:

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
sumber
1

Salah satu cara untuk melakukan ini adalah dengan melakukannya

diff dir1 dir1| grep "diff "

Itu masih akan melakukan perbandingan baris per baris, tetapi setiap perbandingan file dimulai dengan "diff dir1 / file dir2 / file", jadi grepping "diff" hanya akan menampilkan baris tersebut (yaitu file yang berbeda).

pengguna13743
sumber
1

Jika Anda adalah pengguna emacs, periksa direktori-ediff. Anda dapat melihat perbedaan file dan kemudian menelusuri perbedaan line-by-line jika Anda perlu melihat mengapa mereka berbeda.

Doug Harris
sumber