Beyond Compare gibi Windows için dizinleri ve dosyaları karşılaştıracak bir şey arıyorum.
Esas olarak kaynak kontrolünün kullanımı içindir, ancak dağıtım için de kullanmam gerekiyor.
Meld, dosyaları ve dizinleri karşılaştırabilen ve birleştirebilen bir araçtır. Standart
diffiçin bir GUI analogudur ve
patch komut satırı araçları. (Bunlarla ilgili daha fazla ayrıntı için bkz. man diff ve man patch )
Diff senin arkadaşın.
diff -ur path1 path2
Bu, path1 ve path2 arasında ortak olan tüm dosyaları karşılaştırır.
-ur öğesini
-urN olarak değiştirirseniz, bu da yalnızca yollardan birinde bulunan dosyaların içeriğini gösterir.
'Karşılaştırma Ötesinde' de Linux için kullanılabilir.
İndirme URL'lerini kontrol edin: http://www.scootersoftware.com/download.php
diff komutunu kullanın:
diff -u file1 file2
diff -u, birkaç satırlık bağlam içeren bir format seçer. Bir düz
diff file1 file2 sadece farklı satırları listeler. Çıktı formatını kontrol etmek, boşluk-sadece farkları yoksaymak, vb. İçin daha birçok seçenek var.
Çıktıyı bir dosyaya yazmak istiyorsanız, yönlendirin:
diff -u file1 file2 >file1-file2.diff
Arayüz gerçek seksi olmayabilir, ama son derece güçlü!
Diğer * Komutanlara (Norton ya da benzerleri gibi) alışkınsanız, kaybolmazsınız.
Esinlenerek bu blog girişi .
Farklı dosyaların listelenmesi:
diff -qr folder1 folder2
Ayrıca içerik listeleniyor:
diff -Naur folder1 folder2
İki dizin aynı makinede değilse,
rsync en kolay çözüm olabilir. Genellikle
rsync dizinleri senkronize etmek için kullanılır, ancak bunu ayrıntılı ve kuru modda çalıştırabilirsiniz, böylece yalnızca değiştirmek zorunda olduğu dosyaları listeleyecektir.
rsync -rvnc --delete folder1 server:/path/to/folder2
Her şeyi hızlandırmak için zaman damgalarına ve dosya boyutlarına göre dosyaları karşılaştırmak istiyorsanız,
c öğesini atlayabilirsiniz:
rsync -rvn --delete folder1 server:/path/to/folder2
Krusader, klasör içeriğini karşılaştırmalı olarak gösteren ücretsiz bir araçtır (Yazılım Merkezinde bulunur) ve birçok farklı seçenekle senkronize edebilirsiniz. Senkronize ederken ve karşılaştırırken filtreleyebilirsiniz.
Dosya içeriğini karşılaştırmak için iki dosyayı işaretlemeniz yeterlidir, "dosya"> "içeriği karşılaştır" ı seçin ve bunlar harf bazında karşılaştırıldı. krusader tarafından kullanılan varsayılan karşılaştırma aracı, varsayılan KDE aracıdır " Kompare ". Krusader'ı başka herhangi bir karşılaştırma aracını kullanacak şekilde ayarlayabilirsiniz - örneğin yukarıdakilerden birine benzer.
Bu şimdiye kadar bulduğum en eksiksiz çözüm ve çok uygun. Ve gece yarısı komutanı (norton komutanı sözdizimi) tarafından kullanılan tüm fonksiyon tuşlarını destekler.
Unison, rsync algoritmasını kullanan hızlı bir dosya senkronizasyon aracıdır ve uzak veya yerel olmak üzere 2 konum arasında güncelleme yapmadan önce farkları önizlemenizi sağlar.
Bu karşılaştırmayı yapmanın iyi bir yolu "find" ile "md5sum", sonra bir "diff" kullanmaktır.
Örnek:
Dizindeki tüm dosyaları listelemek için find komutunu kullanın, ardından her dosya için md5 değerini hesaplayın ve bir dosyaya aktarın:
$find /dir1/ -type f -exec md5sum {} \; > dir1.txt
Aynı işlemi başka bir dizine de yapın:
$find /dir2/ -type f -exec md5sum {} \; > dir2.txt
Sonra sonuç iki dosyaları "diff" ile karşılaştırın:
$diff dir1.txt dir2.txt
Bu strateji, karşılaştırılacak iki dizin aynı makinede olmadığında ve dosyaların her iki dizinde de eşit olduğundan emin olmanız gerektiğinde çok faydalıdır.
İşi yapmanın başka bir iyi yolu ise git
git diff --no-index dir1/ dir2/
Saygılarımla!
İki hafta önce hashdeep hakkında bir şeyler öğrendim. Ve bazı güçlü avantajları vardır:
meld'ın aksine, çok büyük klasörler için işe yarar.
meldson derece yavaşladığında ve kullanıcı arabiriminin yanıt vermediğinde (engellendiğinde), hashdeep sadece sabit bir hızda çalışır
rsyncöğesinin aksine, hashdeep taşınan dosyaları algılar - aynı içeriğe sahip dosyaları, yalnızca farklı bir dizinde.
Ayrıntılı çıktı şöyledir:
... 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
Ayrıca deneyin FreeFileSync . İyi bir arayüze, kabul edilebilir karşılaştırma hızına, karşılaştırma sonucunun iyi filtrelenmesine, farklı senkronizasyon yöntemlerine sahiptir. Belirli bir klasör (veya klasörler) veya içindeki dosyalar değiştirildiğinde FreeFileSync'i (aslında herhangi bir komut veya komut dosyası) başlatabilecek bir klasör izleme aracı (RealTimeSync) ile birlikte gelir. Gerçekten denemeye değer.
Sayfalarından, temel özellikleri:
Dosyaları karşılaştırın (bytewise veya tarihe göre) ve senkronize edin.
Sınırlama yok: İsteğe bağlı sayıda dosya senkronize edilebilir.
Unicode desteği.
Ağ desteği.
Çok uzun dosya adları için dahili destek (MAX_PATH = 260 karakterden fazla).
Silinen dosyaların yayılması ve çakışma tespiti için senkronizasyon veritabanı
Farklı konfigürasyonda birden fazla klasör çifti için destek
Windows/Linux Sembolik Bağlantıları ve Windows Bağlantı Noktaları için tam destek.
Yalın ve kolay erişilebilir UI: Hız ve devasa veri setleri için son derece optimize edilmiş.
Algoritmalar tamamen C++ kodluydu.
Tüm ilerleme göstergeleri maksimum performans için optimize edildi!
GUI ile veya GUI'siz otomatik senkronizasyon için Toplu İşler oluşturun.
Kullanılabilirliğe odaklanın:
UI'da yalnızca gerekli işlevler: Aşırı yüklenmiş menü veya simge ormanı yok.
Sürükle ve bırak ile tüm klasörleri seçin.
En son kullanılan yapılandırma ve ekran ayarları otomatik olarak kaydedilir.
Sürükle ve bırak, yükle düğmesi veya komut satırıyla farklı yapılandırmaları koruyun ve yükleyin.
Harici uygulamayı başlatmak için çift tıklayın (örneğin, dosyayı Windows Gezgini'nde göster)
Tüm ızgara verilerini metin olarak kopyala ve yapıştır
Gereksiz/geçici dosyaları doğrudan ana şebekeden silin.
İçerik menüsünü sağ tıklayın.
Kapsamlı durum bilgisi ve hata raporlama
Dosya listelerini ada, boyuta veya tarihe göre sıralayın.
4 GB'den büyük dosya boyutları için destek.
Dosyaları silmek/üzerine yazmak yerine Geri Dönüşüm Kutusu'na taşıma seçeneği.
Varsayılan Filtreli "\ RECYCLER" ve "\ System Volume Information" dizinlerini yoksay. (Yalnızca Windows)
Yerelleştirilmiş sürümler birçok dilde kullanılabilir.
Kopyalamadan önce sil: Büyük senkronizasyon işleri için disk alanı yetersizliğinden kaçının.
Dosyaları senkronizasyona dahil etmek/dışlamak için işlevselliği filtreleyin (yeniden kıyaslama gerektirmeden!).
Belirli dosyaları senkronizasyondan geçici olarak dahil etme/hariç tutma.
FAT/FAT32 birimlerinde gün ışığından yararlanma saati değişikliklerini otomatik olarak işleyin.
Portatif versiyon mevcut (montör ile seçilebilir).
Yerel 64 Bit sürümü.
FreeFileSync içinden güncellemeleri otomatik olarak kontrol et.
Kilitli dosyaları Windows Birim Gölge Kopyası Hizmeti'ni kullanarak kopyalayın. (Yalnızca Windows)
Dizin adlarında% time%,% date% makrolarıyla düzenli yedekleme oluşturun
Senkronize ederken kopyalanan dosya ve klasör oluşturma/erişim/değiştirme zamanları
Birden fazla senkronizasyon işlemine izin vermek için gelişmiş kilitleme stratejisi (örneğin, birden çok yazar, aynı ağ paylaşımı)
Silinen dosyaları yöneterek, Çöp Kutusuna veya kullanıcı tarafından belirtilen bir klasöre taşıyabilir. Bir dezavantajı işaret etmek için: program belgeleri Windows'ta biraz daha az Linux üzerinde odaklanmaktadır. Ama işini güzel yapıyor.
Diffuse kullanabilirsiniz:
Sudo apt-get install diffuse diffuse file1 file2
Deneyin meld .
Depolar ve dosya veya klasör karşılaştırması için bir GUI sağlar.
Eclipse IDE sadece karşılaştırma yapıyorsanız biraz ağırdır, ancak diğer şeylerin yanı sıra iyi bir iş çıkarır. 2 proje, yol veya dosya seçebilir ve bunları birbirleriyle karşılaştırabilir ve ayrıca kaynak kontrol sunucuları ile senkronize edebilirsiniz.
IMHO FreeFileSync, Meld'den çok iyi ve daha kullanışlıdır. Hızlı ve kararlı, costomize edilebilir senkronizasyonlar yapabilir ve karşılaştırmanın sonucunu bir csv dosyasına aktarabilir.
File_1.txt Line1 Line2 File_2.txt Line1 Line 2
Komutunu kullanabilirsiniz
cmp :
cmp -b "File_1.txt" "File_2.txt"
çıktı
a b differ: byte 11, line 2 is 62 2 40
diff komutunu kullanabilirsiniz:
diff -r --brief dir1 dir2
man diff
-r, --recursive recursively compare any subdirectories found -q, --brief report only when files differ
Platformlar arası, kolay, sorunsuz ve profil tasarrufu sağlayan özellikler Jfilesync en iyi tercihim