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)?

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


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

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).


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.