GNU/Linux >> Belajar Linux >  >> Linux

Linux:Bandingkan Struktur Direktori Tanpa Membandingkan File

Berikut ini (jika Anda mengganti direktori pertama dengan direktori1 dan direktori kedua dengan direktori2) akan melakukan apa yang Anda cari dan dengan cepat:

find directory1 -type d -printf "%P\n" | sort > file1
find directory2 -type d -printf "%P\n" | sort | diff - file1

Prinsip dasarnya adalah mencetak semua direktori termasuk jalur subdirektori relatif terhadap direktori dasar direktoriN.

Ini bisa gagal (menghasilkan keluaran yang aneh) jika Anda memiliki carriage return di beberapa nama direktori tetapi tidak di yang lain.


vimdiff <(cd dir1; find . | sort) <(cd dir2; find . | sort)

akan memberi Anda tampilan berdampingan yang bagus dari dua hierarki direktori dengan setiap bagian umum yang dilipat.


Saya biasanya menggunakan rsync untuk tugas ini:

rsync -nav --delete DIR1/ DIR2

Hati-hati untuk selalu menggunakan -n , alias --dry-run , opsi, atau akan menyinkronkan (mengubah konten) direktori.

Ini akan membandingkan file berdasarkan waktu dan ukuran modifikasi file... Saya berpikir itulah yang benar-benar Anda inginkan, atau setidaknya Anda tidak keberatan jika itu terjadi? Saya merasa Anda hanya ingin hal itu terjadi lebih cepat , bukan berarti Anda membutuhkannya untuk mengabaikan perbedaan antara konten file. Jika Anda ingin tidak mencantumkan file yang berbeda dengan nama yang identik, saya pikir penambahan --ignore-existing opsi akan melakukan itu.

Perlu diketahui juga bahwa tidak meletakkan / di akhir DIR1 akan membuatnya membandingkan direktori DIR1 dengan konten dari DIR2 .

Outputnya akhirnya menjadi sedikit bertele-tele, tetapi ini akan menunjukkan kepada Anda file/direktori mana yang berbeda. File/direktori ada di DIR2 dan bukan di DIR1 akan diawali dengan kata deleting .

Untuk beberapa situasi, jawaban @slartibartfast mungkin lebih tepat, meskipun Anda harus menghapus -type d opsi untuk mengaktifkan daftar file non-direktori. rsync akan lebih cepat jika Anda memiliki banyak file/direktori untuk dibandingkan.


Linux
  1. Jumlah maksimum file/direktori di Linux?

  2. Cara terbaik untuk membandingkan pohon direktori besar

  3. Bagaimana cara membandingkan file biner di Linux?

  1. Memindahkan file di Linux tanpa mv

  2. Cara Mengekstrak File Tar ke Direktori Tertentu atau Berbeda di Linux

  3. Salin struktur folder tingkat atas tanpa menyalin file di linux

  1. Linux – Bagaimana Cara Memeriksa Informasi Struktur Direktori File Unix/linux?

  2. Hapus hanya file dalam direktori di direktori BUKAN linux

  3. Menghitung file secara rekursif dalam direktori Linux