Dosya ve dizin karşılaştırma aracı?

142

Beyond Compare pencereleri gibi dizinleri ve dosyaları karşılaştıracak bir şey arıyorum.

Temel olarak kaynak kontrolünün kullanımı için kullanıyorum, fakat bunu dağıtım için de kullanmalıyım.

    
sordu DevelopingChris 10.11.2010 13:15

19 cevap

169

Meld

Meld, dosyaları ve dizinleri karşılaştırabilen ve birleştirebilen bir araçtır. Bu, diff ve patch komutu satır araçları. (Bkz. erkek farklılığı ve adam düzeltme eki hakkında daha fazla bilgi için)

Ayrıca, birçok kaynak kontrol sistemi ( bzr veya git ) sürümler arasında farklar oluşturma yeteneğine sahip.

    

verilen cevap dv3500ea 10.11.2010 13:28
42

Diff senin arkadaşın.

diff -ur path1 path2

Bu, yol1 ve yol2 arasında ortak olan tüm dosyaları karşılaştırır.

-ur 'yi -urN ' ye değiştirirseniz, bu, yalnızca yollardan birinde bulunan dosyaların içeriğini de gösterir.

    
verilen cevap Richm 04.10.2011 19:43
21

'Beyond Compare' Linux için de kullanılabilir.

İndirme URL’lerini kontrol edin: İşte

    
verilen cevap aneeshep 10.11.2010 13:23
13

diff komutunu kullanın:

diff -u file1 file2

diff -u , birkaç satır içeriğiyle bir biçim seçer. Düz diff file1 file2 yalnızca farklı satırları listeler. Çıkış biçimini kontrol etmek için daha fazla seçenek vardır, yalnızca boşluklara özgü farklılıkları, vb. Yoksundur.

Çıktıyı bir dosyaya yazmak istiyorsanız, yönlendirin:

diff -u file1 file2 >file1-file2.diff
    
verilen cevap Gilles 07.10.2013 22:05
12

Gnome Commander

Arayüz gerçek seksi olmayabilir, ancak çok güçlü!

Ve eğer başka * Komutan'a (Norton gibi, ya da benzerleri) alışmış olsaydınız, kaybolmazsınız.

    
verilen cevap Huygens 10.11.2010 14:09
10

Komut satırı araçları

bu blog girişinden ilham alın.

fark

Farklı dosyaları listeleme:

diff -qr folder1 folder2

Ayrıca içeriği de listeleme:

diff -Naur folder1 folder2

rsync

İki dizin aynı makinede değilse, rsync en kolay çözüm olabilir. Genellikle dizinleri senkronize etmek için rsync kullanılır, ancak bunu ayrıntılı ve kuru modda çalıştırabilirsiniz, böylece yalnızca değiştirmek zorunda kalacağı dosyaları listeler.

rsync -rvnc --delete folder1 server:/path/to/folder2

Dosyaları, her şeyi hızlandırmak için zaman damgalarına ve dosya boyutlarına göre karşılaştırmak isterseniz c 'yı kullanabilirsiniz:

rsync -rvn --delete folder1 server:/path/to/folder2
    
verilen cevap lumbric 25.12.2011 20:22
6

Belki de Meld aradığınız şeydir. Veya buradaki başka alternatiflerdir.

    
verilen cevap sagarchalise 10.11.2010 13:23
4

Unison, rsync algoritmasını kullanan ve uzak veya yerel olabilir, 2 konum arasında güncelleme yapmadan önce farklılıkları önizlemenizi sağlayan hızlı bir dosya senkronizasyon aracıdır.

    
verilen cevap Rog 18.01.2011 03:29
4

İki hafta önce hashdeep hakkında bilgi edindim. Ve bazı güçlü avantajları var:

  • meld 'nin aksine, çok büyük klasörler için iyi çalışıyor. % Co_de% 'nın çok yavaş olduğu ve UI yanıt vermediği (engellenmiş) olduğunda, hashdeep yalnızca sabit bir hızda çalışır
  • meld 'nin aksine, hashdeep taşınan dosyaları algılar - aynı içeriğe sahip dosyalar, sadece farklı bir dizinde.

Verbose çıkışı şöyle:

...
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
    
verilen cevap geekQ 07.05.2013 13:50
3

Ayrıca, FreeFileSync ’i de deneyin. İyi bir arayüze, kabul edilebilir hıza, karşılaştırma sonucunun iyi filtrelenmesine, farklı senkronizasyon yöntemlerine sahiptir. FreeFileSync'i (aslında herhangi bir komut veya komut dosyası) başlatabilen bir klasör izleme aracı (RealTimeSync) ile birlikte bu belirli klasör (veya klasörler) veya içindeki dosyalar değiştirilir. Gerçekten denemeye değer.

Bununla ilgili daha fazla bilgi buradaki veya buralarda , bir PPA ’nız var

Sayfalarından, temel özellikler:

  

Dosyaları (bytewise veya date) karşılaştırın ve senkronize edin.

     

Sınırlama yok: İstediğiniz sayıda dosya senkronize edilebilir.

     

Unicode desteği.

     

Ağ desteği.

     

Çok uzun dosya adları için yerleşik destek (MAX_PATH = 260 karakterden fazla).

     

Silinen dosyaların yayılması ve çakışma algılaması için senkronizasyon veritabanı

     

Ayrı yapılandırmalı birden çok klasör çifti desteği

     

Windows / Linux Simgesel Bağlantıları ve Windows Bağlantı Noktaları için tam destek.

     

Yalın & amp; Kolay erişilebilen UI: Hız ve devasa veri kümeleri için son derece optimize edilmiştir.

     

Algoritmalar C ++ ile tamamen kodlanmıştır.

     

Maksimum performans için optimize edilen tüm ilerleme göstergeleri!

     

GUI ile veya GUI olmadan otomatik senkronizasyon için Toplu İşler oluşturun.

     

Kullanılabilirliğe odaklanın:

     
    
      
        

Yalnızca kullanıcı arayüzünde gerekli işlevler: aşırı yüklü menü veya simge ormanı yok.

                 

Sürükle & amp; bırakın.

                 

Son kullanılan yapılandırma ve ekran ayarları otomatik olarak kaydedilir.

                 

Farklı yapılandırmaları sürükle & amp; bırak, yükle veya komut satırı.

                 

Harici uygulamayı başlatmak için çift tıklayın (ör. Windows Gezgini'nde gösteri dosyası)

                 

Kopyala & amp; tüm ızgara verilerini metin olarak yapıştırın

                 

Gereksiz / geçici dosyaları doğrudan ana ızgarada silin.

                 

İçerik menüsünü sağ tıklayın.

                 

Kapsamlı durum bilgisi ve hata bildirimi

                 

Dosya listelerini ad, boyut veya tarihe göre sıralayın.

      
    
  
     

4 GB’den büyük dosyalar için destek.

     

Dosyaları silmek / üzerine yazmak yerine Geri Dönüşüm Kutusu'na taşımak için Seçenek.

     

Varsayılan Filtre ile "\ RECYCLER" ve "\ System Volume Information" dizinlerini yoksayın. (Yalnızca Windows)

     

Yerelleştirilmiş sürümler birçok dil için kullanılabilir.

     

Kopyalamadan önce sil: Büyük senkronizasyon işleri için disk alanı eksikliklerinden kaçının.

     

Senkronizasyondan dosyaları dahil etmek / hariç tutmak için işlevselliği sınar (yeniden karşılaştırmaya gerek kalmadan!).

     

Belirli dosyaları senkronizasyondan geçici olarak dahil et / dahil et.

     

FAT / FAT32 birimlerinde gün ışığından yararlanma saati değişikliklerini otomatik olarak gerçekleştirin.

     

Taşınabilir sürüm mevcut (yükleyici ile seçilebilir).

     

Yerel 64 Bit sürümü.

     

FreeFileSync içinden güncellemeleri otomatik olarak kontrol edin.

     

Windows Birim Gölge Kopyalama Hizmeti'ni kullanarak kilitli dosyaları kopyalayın. (Yalnızca Windows)

     

Makro adlarında% zaman%,% tarih% makrosu ile normal yedeklemeler oluşturun

     

Senkronize edilirken dosya ve klasör oluşturma / erişim / değiştirme sürelerini kopyalayın

     

Birden çok senkronizasyon işlemine izin vermek için gelişmiş kilitleme stratejisi (ör., birden çok yazar, aynı ağ paylaşımı)

Ekledim, silinen dosyaları yönetebilir, Çöp Kutusu'na veya kullanıcı tarafından belirtilen bir klasöre taşıyabilir. Bir dezavantajı işaret etmek için: program dökümantasyonu Windows üzerinde biraz daha az odaklanıyor, Linux'ta daha az. Ama işini güzelce yapıyor.

    
verilen cevap luri 18.01.2011 02:18
3

diffüz kullanabilirsiniz:

sudo apt-get install diffuse
diffuse file1 file2
    
verilen cevap metdos 18.12.2012 09:50
3

Bu karşılaştırmayı yapmanın iyi bir yolu, " md5sum " ile " bulmak " ı, ardından " diff " ifadesini kullanmaktır.

Örnek:

Dizindeki tüm dosyaları listelemek için bul'u kullanın, ardından her dosya için md5 hash değerini hesaplayın ve bir dosyaya aktarın:

$find /dir1/ -type f -exec md5sum {} \; > dir1.txt

Aynı prosedürü başka bir dizine yapın:

$find /dir2/ -type f -exec md5sum {} \; > dir2.txt

Ardından, sonucu iki dosyayı "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 kullanışlıdır.

İşi yapmanın başka bir iyi yolu git

kullanıyor
git diff --no-index dir1/ dir2/

Saygılarımızla!

    
verilen cevap Adail Junior 09.01.2017 21:09
2

kaynağını deneyebilirsiniz.

Bu, depolar ve dosya veya klasör karşılaştırması için bir GUI sağlar.

    
verilen cevap Pavlos G. 04.10.2011 18:58
1

Eclipse IDE, sadece karşılaştırmalar yapıyorsanız biraz ağırdır, ancak diğer şeylerin yanı sıra bunun iyi bir işi vardır. 2 proje, yol veya dosya seçebilir ve bunları birbiriyle karşılaştırabilir ve ayrıca kaynak kontrol sunucularıyla senkronize edebilirsiniz.

    
verilen cevap Rog 18.01.2011 03:25
1

IMHO FreeFileSync, Meld'den çok daha iyi ve daha faydalıdır. Hızlı ve kararlı, costomize edilebilir senkronizasyonlar yapabilir ve karşılaştırmanın sonucunu bir csv dosyasına aktarabilir.

Lanchpad bağlantısı

    
verilen cevap Reza 20.01.2014 13:53
0

Çapraz platform, kolay, rahatsızlık yok & amp; profil kaydetme özellikleri Jfilesync en üst düzey tercihimi yapar

    
verilen cevap nightcrawler 23.07.2014 21:51
0

Dosyaları karşılaştırmak için

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

cmp komutunu kullanabilirsiniz:

cmp -b "File_1.txt" "File_2.txt"

çıktı

olurdu
a b differ: byte 11, line 2 is  62 2  40  

Dir'leri (ihtiyacınız) karşılaştırmak için:

diff komutunu kullanabilirsiniz:

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ
    
verilen cevap Maythux 17.06.2015 13:05

Etiketlerdeki diğer soruları oku