GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana membandingkan perbedaan antara direktori (linux)

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 dengan www2 jarak jauh
  • ada autentikasi kunci ssh publik yang dikonfigurasi dari www1 lokal ke www2 jarak jauh
  • kami membandingkan sebagai pengguna yang sama di www1 lokal dan www2 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?


Linux
  1. Cara Mengganti Nama Direktori di Linux

  2. Bagaimana cara mendaftar direktori secara rekursif di C di Linux?

  3. Cara membedakan direktori melalui ssh

  1. Cara Menyinkronkan Direktori Lokal Dan Jarak Jauh Di Linux

  2. Cara Memasang Windows Share Jarak Jauh di Linux

  3. Bagaimana cara menambahkan koneksi MySQL jarak jauh di linux?

  1. Cara Memindahkan Direktori di Linux

  2. Bagaimana cara mengulang direktori di Linux?

  3. Cara mendapatkan perbedaan (hanya penambahan) antara dua file di linux