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 denganwww2
jarak jauh - ada autentikasi kunci ssh publik yang dikonfigurasi dari
www1
lokal kewww2
jarak jauh - kami membandingkan sebagai pengguna yang sama di
www1
lokal danwww2
jarak 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?