Direktori "diff"?

8

Saya memiliki dua direktori yang merupakan versi berbeda dari paket perangkat lunak yang sama. Saya ingin mendaftar semua file / direktori yang telah berubah di antara keduanya lalu salin perbedaan tersebut ke direktori baru.

Saya sudah mencoba skrip yang berbeda dengan md5sumdan diff -Nurqtetapi belum bisa mendapatkan hasil yang saya cari.

Ada rekomendasi?

Kaya
sumber
Apa artinya "menyalin perbedaan"?
cjm
Saya tidak mengerti apa yang Anda coba lakukan. diff -r(atau variasi) sudah memberi Anda perbedaan. Apa yang kamu coba lakukan dengan mereka?
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

8

Anda harus menggunakannya rsyncsebagai gantinya. Sesuatu seperti rsync -rv $old/ $new/harus melakukan trik: ini akan mencetak file yang akan disalin.

Jalankan dengan tambahan -nuntuk dry-run sebelum benar-benar memodifikasi direktori baru.

alex
sumber
5

Alat terbaik yang saya temukan menggunakan vim dengan plugin DirDiff . Jika Anda menggunakan vimdan vimdiff, Plugin ini akan mudah dipelajari.

Penulis menggambarkannya seperti ini:

deskripsi

Ini adalah utilitas yang melakukan diff rekursif pada dua direktori dan menghasilkan "jendela" yang berbeda. Berdasarkan jendela itu Anda dapat melakukan berbagai operasi diff seperti membuka dua file dalam mode Vim's diff, menyalin file atau direktori secara rekursif ke yang lain, atau menghapus pohon direktori dari direktori sumber.

DirDiff seperti menggunakan vimdiffuntuk membandingkan dua direktori, dan semua subdirektori dan file yang terkandung di dalamnya. Saya sering menggunakan alat ini untuk membandingkan cabang Subversion yang berbeda, direktori konfigurasi pada host yang berbeda, dll.

Untuk tangkapan layar, lihat blog dedm: http://dedm.livejournal.com/115224.html

Stefan Lasiewski
sumber