bdiff'in Linux'ta mevcut olduğu görülmektedir (en azından Heirloom Toolchest'in bir parçası olarak ).
diff
Ben muhtemelen sadece bu anahtar ile düzenli eski fark kullanmak istiyorsunuz:
diff --speed-large-files bigfileA bigfileB
Neden çalışmıyor?
@EvanTeitelman'ın açıklamasına bakın, --speed-large-files
dosyaların belleğe nasıl yükleneceğini etkilemez.
Aşağıdaki komutu kullanarak çalışmadığı gösterilebilir / onaylanabilir:
fallocate -l 10G testa; fallocate -l 10G testb && \
diff --speed-large-files -a testa testb
bsdiff
Sert bu onaylamak için ama denilen bir araç buldum bsdiff
kaynaklanmaktadır bdiff
. Bu aracın Ubuntu'da olduğunu doğruladım apt-get install bsdiff
.
Neden işe yarayabilir?
Yorumlarda @EvanTeitelman tekrar teşekkürler, bsdiff
yukarıdaki ikili dosyalar için farklı bir araçtır. bsdiff
ikili bir fark aracıdır ve büyük dosyalarla başa çıkabilir. Ne kadar büyük olduğu belli değil. Kullanımının tartışıldığı bir ileti dizisine ilişkin aşağıdaki bağlantılara bakın.
rdiff
Ben de bunu yapmak için rdiff kullanabilirsiniz düşünüyorum . Rdiff çok büyük dosyalarla başa çıkabilir.
Bir dosyanın imzasını oluşturun:
rdiff signature A sigs.txt
Delta oluşturmak için oluşturulan imza dosyası sigs.txt ve diğer büyük B dosyasını kullanın:
rdiff delta sigs.txt B deltaAB.txt
Delta, yalnızca A ve deltaAB.txt delta dosyanız olduğunda B dosyasını yeniden oluşturmanız için gereken tüm bilgileri içerir.
B'yi yeniden oluşturmak için şunu çalıştırın:
rdiff patch A deltaAB.txt B
Neden çalışıyor?
Bu blog yazısı başlıklı buldum: Daha iyi bir fark ya da GNU fark Ne Zaman Yapmak için Ne Yapılır Bellek yetersiz ("diff: bellek tükenmiş") , hangi 4.5GB dosyaları bir rdiff sadece ~ 66MB RAM tüketir.
lfhex
lfhex , dosyaları hex, octal, binary veya ascii metinde görüntülemek ve düzenlemek için kullanılan bir uygulamadır. Lfhex'in ana gücü, sistem belleğinden çok daha büyük dosyalarla çalışabilmesidir. Ancak bir GUI aracıdır.
ekran görüntüsü
Referanslar