Saya mencari sesuatu yang akan membandingkan direktori dan file seperti Beyond Compare untuk windows.
Terutama untuk penggunaan kontrol sumber, tapi saya perlu menggunakannya untuk penyebaran juga.
Saya mencari sesuatu yang akan membandingkan direktori dan file seperti Beyond Compare untuk windows.
Terutama untuk penggunaan kontrol sumber, tapi saya perlu menggunakannya untuk penyebaran juga.
Jawaban:
Meld adalah alat yang dapat membandingkan dan menggabungkan file dan direktori. Ini adalah analog GUI dengan alat standar diff
dan patch
perintah. (Lihat man diff dan man patch untuk detail lebih lanjut tentang itu)
Juga, banyak sistem kontrol sumber (seperti bzr
atau git
) memiliki kemampuan untuk membuat perbedaan antar versi.
beyond compare
bawah. superior to meld imho
Diff adalah temanmu.
diff -ur path1 path2
Ini akan membandingkan semua file yang umum antara path1 dan path2.
Jika Anda mengubah -ur
ke -urN
maka itu juga akan menampilkan konten file yang hanya ada di salah satu jalur.
colordiff
dan digunakancolordiff -ur path1 path2
'Beyond Compare' juga tersedia untuk Linux.
Periksa url unduhan mereka: http://www.scootersoftware.com/download.php
Gunakan diff
perintah:
diff -u file1 file2
diff -u
memilih format dengan beberapa baris konteks. Dataran diff file1 file2
hanya mencantumkan garis yang berbeda. Ada banyak opsi untuk mengontrol format output, mengabaikan perbedaan hanya spasi, dll.
Jika Anda ingin menulis output ke file, arahkan kembali:
diff -u file1 file2 >file1-file2.diff
Antarmuka mungkin tidak benar-benar seksi, tetapi sangat kuat!
Dan jika Anda terbiasa dengan * Komandan lainnya (seperti Norton, atau sejenisnya), Anda tidak akan hilang.
Terinspirasi oleh entri blog ini .
Mendaftar file yang berbeda:
diff -qr folder1 folder2
Cantumkan juga konten:
diff -Naur folder1 folder2
Jika dua direktori tidak pada mesin yang sama, rsync
mungkin solusi termudah. Biasanya rsync
digunakan untuk menyinkronkan direktori, tetapi Anda dapat menjalankannya dalam mode verbose dan dry, sehingga hanya akan mencantumkan file yang harus diubah.
rsync -rvnc --delete folder1 server:/path/to/folder2
Anda dapat berhenti c
jika ingin membandingkan file berdasarkan cap waktu dan ukuran file untuk mempercepat semuanya:
rsync -rvn --delete folder1 server:/path/to/folder2
Krusader adalah alat gratis (tersedia di Pusat Perangkat Lunak) yang menampilkan konten folder sebagai perbandingan dan Anda dapat menyinkronkan dengan banyak opsi berbeda. Anda dapat memfilter sambil menyinkronkan dan membandingkan.
Untuk membandingkan konten file, Anda cukup menandai dua file, pilih "file"> "bandingkan konten" dan mereka dibandingkan berdasarkan huruf per huruf. alat pembanding default yang digunakan oleh krusader adalah alat KDE default " Kompare ". Anda dapat mengatur krusader untuk menggunakan alat perbandingan lainnya - seperti misalnya salah satu di atas.
Ini adalah solusi paling lengkap yang pernah saya temukan dan sangat nyaman. Dan itu mendukung semua fungsi keybindungs yang digunakan oleh komandan tengah malam (sintaks komandan norton).
Saya belajar tentang hashdeep dua minggu lalu. Dan itu memiliki beberapa keunggulan kuat:
meld
, ini berfungsi dengan baik untuk folder yang sangat besar. Di mana meld
menjadi sangat lambat dan UI tidak responsif (diblokir), hashdeep hanya bekerja pada kecepatan konstanrsync
, hashdeep mendeteksi file yang dipindahkan - file dengan konten yang sama, hanya di direktori yang berbeda.Output verbal seperti:
...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG
hashdeep: Audit failed
Input files examined: 0
Known files expecting: 0
Files matched: 6233
Files partially matched: 0
Files moved: 3695
New files found: 19257
Known files not found: 4713
Cara yang baik untuk melakukan perbandingan ini adalah menggunakan " find " dengan " md5sum ", lalu " diff ".
Contoh:
Gunakan find untuk membuat daftar semua file dalam direktori kemudian menghitung hash md5 untuk setiap file dan pipa ke file:
$find /dir1/ -type f -exec md5sum {} \; > dir1.txt
Lakukan prosedur yang sama ke direktori lain:
$find /dir2/ -type f -exec md5sum {} \; > dir2.txt
Kemudian bandingkan hasil dua file dengan "diff":
$diff dir1.txt dir2.txt
Strategi ini sangat berguna ketika dua direktori yang akan dibandingkan tidak berada di mesin yang sama dan Anda perlu memastikan bahwa file-file tersebut sama di kedua direktori.
Cara lain yang baik untuk melakukan pekerjaan itu adalah menggunakan git
git diff --no-index dir1/ dir2/
Salam Hormat!
Coba juga FreeFileSync . Ini memiliki antarmuka yang layak, kecepatan perbandingan yang dapat diterima, penyaringan yang baik dari hasil perbandingan, cara sinkronisasi yang berbeda. Itu datang dengan alat pemantauan folder (RealTimeSync) yang dapat meluncurkan FreeFileSync (sebenarnya semua perintah atau skrip) ketika folder tertentu (atau folder) atau file di dalamnya diubah. Sangat layak dicoba.
Info lebih lanjut di sini atau di sini , di mana Anda memiliki PPA juga
Dari halaman mereka, fitur utama:
Bandingkan file (oleh atau berdasarkan tanggal) dan sinkronkan.
Tanpa batasan: Jumlah file sewenang-wenang dapat disinkronkan.
Dukungan Unicode.
Dukungan jaringan.
Dukungan bawaan untuk nama file yang sangat panjang (lebih dari MAX_PATH = 260 karakter).
Database sinkronisasi untuk propagasi file yang dihapus dan deteksi konflik
Dukungan untuk beberapa pasangan folder dengan konfigurasi berbeda
Dukungan penuh untuk Windows / Linux Symbolic Links dan Windows Junction Points.
UI ramping & mudah diakses: Sangat dioptimalkan untuk kecepatan dan kumpulan data yang sangat besar.
Algoritma dikodekan dalam C ++ sepenuhnya.
Semua indikator kemajuan dioptimalkan untuk kinerja maksimum!
Buat Batch Jobs untuk sinkronisasi otomatis dengan atau tanpa GUI.
Fokus pada kegunaan:
Hanya fungsionalitas yang diperlukan di UI: tidak ada menu kelebihan atau ikon hutan.
Pilih semua folder melalui seret & lepas.
Konfigurasi dan pengaturan layar yang terakhir digunakan disimpan secara otomatis.
Pelihara dan muat konfigurasi yang berbeda dengan cara drag & drop, tombol muat atau commandline.
Klik dua kali untuk memulai aplikasi eksternal (mis. Tampilkan file di Windows Explorer)
Salin & tempel semua data kisi sebagai teks
Hapus file tidak berguna / sementara langsung di grid utama.
Klik kanan menu konteks.
Informasi status komprehensif dan pelaporan kesalahan
Urutkan daftar file berdasarkan nama, ukuran atau tanggal.
Dukungan untuk ukuran file lebih besar dari 4 GB.
Opsi untuk memindahkan file ke Recycle Bin alih-alih menghapus / menimpa mereka.
Abaikan direktori "\ RECYCLER" dan "\ System Volume Information" dengan Filter default. (Khusus Windows)
Versi lokal tersedia untuk banyak bahasa.
Hapus sebelum penyalinan: Hindari kekurangan ruang disk untuk pekerjaan sinkronisasi besar.
Fungsionalitas filter untuk memasukkan / mengecualikan file dari sinkronisasi (tanpa perlu membandingkan kembali!).
Sertakan / kecualikan file tertentu dari sinkronisasi sementara.
Secara otomatis menangani perubahan waktu musim panas pada volume FAT / FAT32.
Versi portabel tersedia (dapat dipilih melalui penginstal).
Versi asli 64-Bit.
Periksa pembaruan dari dalam FreeFileSync secara otomatis.
Salin file yang terkunci menggunakan Windows Volume Shadow Copy Service. (Khusus Windows)
Buat cadangan reguler dengan makro% waktu%,% tanggal% dalam nama direktori
Salin file dan folder buat / akses / modifikasi kali saat sinkronisasi
Strategi penguncian lanjutan untuk memungkinkan beberapa proses sinkronisasi (mis. Banyak penulis, berbagi jaringan yang sama)
Saya akan menambahkannya dapat mengelola file yang dihapus, memindahkannya ke Sampah atau folder yang ditentukan oleh pengguna. Kelemahannya: dokumentasi program sedikit berfokus pada Windows, lebih sedikit pada Linux. Tapi itu berfungsi dengan baik.
Anda dapat menggunakan difus:
sudo apt-get install diffuse
diffuse file1 file2
Anda dapat mencoba berbaur .
Ini repositori dan menyediakan GUI untuk perbandingan file atau folder.
IMHO FreeFileSync sangat baik dan lebih bermanfaat daripada Meld. Cepat dan stabil, dapat melakukan sinkronisasi yang dapat disesuaikan biaya dan juga dapat mengekspor hasil perbandingan ke file csv.
Cross-platform, mudah, tidak ada kerepotan & fitur penyimpanan profil menjadikan Jfilesync pilihan utama saya
File_1.txt
Line1
Line2
File_2.txt
Line1
Line 2
Anda dapat menggunakan perintah cmp
:
cmp -b "File_1.txt" "File_2.txt"
output akan menjadi
a b differ: byte 11, line 2 is 62 2 40
Anda dapat menggunakan perintah diff :
diff -r --brief dir1 dir2
man diff
-r, --recursive
recursively compare any subdirectories found
-q, --brief
report only when files differ