Solusi 1:
Dari halaman manual diff:
Jika dari-file dan ke-file adalah direktori, diff membandingkan file yang sesuai di kedua direktori, dalam urutan abjad; perbandingan ini tidak bersifat rekursif kecuali opsi -r atau --recursive diberikan.diff tidak pernah membandingkan isi sebenarnya dari sebuah direktori seolah-olah itu adalah sebuah file. File yang sepenuhnya ditentukan mungkin bukan masukan standar, karena masukan standar tidak bernama dan pengertian ''file dengan nama yang sama'' tidak berlaku.
Jadi untuk membandingkan direktori:diff --brief -r dir1 dir2
Untuk membandingkan file secara berdampingan:diff --side-by-side file1 file2
Solusi 2:
Dengan asumsi:
- kita berada di
www1, dibandingkan denganwww2jarak jauh - ada autentikasi kunci ssh publik yang dikonfigurasi dari
www1lokal kewww2jarak jauh - kami membandingkan sebagai pengguna yang sama di
www1lokal danwww2jarak jauh
find /var/www/html/ -name "*" -exec md5sum -b {} \; | grep -v "/var/www/html/exclude_this dir" > local.md5
ssh www2 "find /var/www/html/ -name '*' -exec md5sum -b {} \; | grep -v /var/www/html/exclude_this dir > remote.md5"
scp www2:remote.md5 .
diff local.md5 remote.md5
Solusi 3:
Anda benar-benar ingin menggabungkan kekuatan rsync untuk mengurangi konsumsi bandwidth dengan kekuatan diff untuk memberi Anda fleksibilitas, well um diffs.
Jadi sesuatu seperti ini:
cp -R $local $bak
rsync $server:$remdir/* $local/
rsync $local/ $server:$remdir/*
diff -wur $local $bak
Saya kira Anda bisa mengubah ini sedikit jika Anda sering melakukannya menggunakan rsync bukannya cp di baris pertama - jelas di baris terakhir Anda memiliki kekuatan penuh diff untuk memformatnya sesuka Anda. Mungkin dengan y dalam kasus OP
Kelemahan dari pendekatan ini adalah Anda akhirnya menggunakan ruang lokal dua kali lebih banyak, tetapi kurang dari $1/pertunjukan, siapa peduli?