Klasörleri karşılaştırmak için hangi yöntem daha doğrudur, diff -r veya md5?


0

Doğru kopyalayıp kopyalamadıklarını görmek için birkaç klasörü karşılaştırmam gerekiyor. diff -r dir1 dir2Seçenek ilk bariz bir seçim gibi görünüyor, ama bu şekilde geçti bazı karşılaştırmalar kullanarak testini geçemedi md5aracı. Neden? Bu md5'in her zaman daha iyi seçenek olduğu anlamına mı geliyor? Ve daha iyi bir tane olabilir mi?


Tam olarak hangi komutları kullanıyorsunuz? Farklı olan ancak md5'i geçmeyen dosyalardan birine baktınız mı? İşlevsel olarak aynı olmalıdırlar, düşünebildiğim tek şey, diff'in yerine getiremediği bazı özel karakter kümeleri olduğudur, ancak bunu hiçbir zaman çoğaltmayı başaramadım.
test

Farklı tarafta 'diff -r dir1 dir2' kullanıyorum, md5 kontrolü için tek tek yürütüyorum 'dir -type f-name bul "*" -exec md5 {} + | awk '{print $ 1}' | md5 ', dir1'i dir1 ve dir2 ile değiştiriyor. Dizinlerin içeriği ikilidir, ancak kolayca uygulayabileceğim türden değildir.
Alex Ixeras

Hmm. Evet, ne yazık ki bu farklı sonuç davranışını bilgisayarımdaki hiçbir şeye kopyalayamıyorum. Benim tek tahminim hala bazı özel karakterlerin dağınık olmasıydı (içeriğe daha fazla etki ettiğinden, md5 ise bayttan bir karmaşa çıkardı). Farkın, boşluk davranış farklılıklarını görmezden gelme seçeneğinin olduğunu biliyorum, bu davranışa neden olur, ancak bu seçeneği kullanmazsınız ve bu bir ikili dosya için anlamlı olmaz. : \
test

Başka bir fark buldum ve hangi komuta güveneceğimi bilemiyorum. Biraz farklı bir md5 çek kullandım. Bu nedenle ilk önce her iki dizine (/ yol / dir1 ve yol / / dir2 kadar) bu çalıştı: find path/to/dir -type f -name "*" | md5. Bu iki farklı karma sonuçlandı. Diff komutunu denediğimde diff ile diff -r path/to/dir1 path/to/dir2herhangi bir fark rapor etmiyor.
Alex Ixeras

1
Burada payetlere kapılıyorum - bu klasörlerde herhangi bir sembolik var mı? Çalıştırdığınız md5 komutu, sembolik bağlantıları görmezden gelir ('f' türünde sayılmazlar), ancak farklı klasörlere işaret ederlerse fark onları görür ve bir fark atır, örneğin, yedek kopyanız bir kopyada aynı dosyayı gösterdiyse farklı bir sürücü. Ne yazık ki bu gördüğünüzün tam tersidir (burada diff farklılıkları bildirir ve md5 yoktur). Ama bulabildiğim tek fark bu. Sonunda problemin çalışan bir örneği olmadan, fikirlerden mahrum kaldım.
test
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.