Sıkıştırmak istediğim yüzlerce benzer büyük dosyam var (her biri 30 megabayt). Her dosya çifti aynı verilerin% 99'una sahiptir (% 1'den az fark), bu yüzden 40-50 megabayttan fazla arşive sahip olmayı beklemiyorum.
Tek dosya (ile 13-15 MB 30 MB den sıkıştırılmış olabilir xz -1
, gz -1
, bzip2 -1
), ancak iki veya daha fazla dosya sıkıştırma zaman boyutu ile arşiv istiyorum 13-15MB + N*0.3MB
N dosya sayısıdır.
tar
(Katı arşiv oluşturmak için) ve xz -6
(sıkıştırma sözlüğünü bir dosyadan daha büyük olarak tanımlamak için - Güncelleme - bu yeterli değildi! ) Kullanırken , hala boyutta bir arşivim var N*13MB
.
Bunu hem düşünüyorum gzip
ve bzip2
onlar Sözlük az 1 mb dan daha var çünkü bana yardımcı olmaz ve benim katran akışı tekrarlar her 30 MB vardır.
Modern Linux'taki sorunumu standart araçlar kullanarak nasıl arşivleyebilirim?
xz
Hızlı sıkıştırmak için ayar yapmak mümkün , ancak 30-60 MB'den daha büyük sözlük kullanmak mümkün mü ?
Güncelleme : Hile yaptı tar c input_directory | xz --lzma2=dict=128M,mode=fast,mf=hc4 --memory=2G > compressed.tar.xz
. Gerekli mf=hc4
ve --memory=2G
seçenekler hakkında emin değilim ; ancak dict=128M
sözlüğü yeterince büyük (bir dosyadan daha büyük) olacak şekilde ayarlayın ve mode=fast
işlemi biraz daha hızlı yapın -e
.
xz -1 --memory=2G
yardımcı olmadı, setten 2 ve 4 dosya üzerinde test edildi.