Saya memiliki ratusan file besar yang serupa (masing-masing 30 megabyte) yang ingin saya kompres. Setiap pasangan file memiliki 99% data yang sama (perbedaan kurang dari 1%), jadi saya berharap tidak lebih dari 40-50 megabyte arsip.
File tunggal dapat dikompresi dari 30 MB ke 13-15 MB (dengan xz -1
, gz -1
, bzip2 -1
), tetapi ketika mengompresi dua atau lebih file saya ingin memiliki arsip dengan ukuran 13-15MB + N*0.3MB
di mana N adalah jumlah file.
Saat menggunakan tar
(untuk membuat arsip padat) dan xz -6
(untuk menentukan kamus kompresi menjadi lebih besar dari satu file - Perbarui - ini tidak cukup! ), Saya masih memiliki arsip dengan ukuran N*13MB
.
Saya pikir keduanya gzip
dan bzip2
tidak akan membantu saya karena mereka memiliki kamus kurang dari 1 MB, dan aliran tar saya memiliki pengulangan setiap 30 MB.
Bagaimana saya bisa mengarsipkan masalah saya di Linux modern menggunakan alat standar?
Apakah mungkin untuk menyetel xz
kompres dengan cepat, tetapi gunakan kamus yang lebih besar dari 30-60 MB?
Pembaruan : Melakukan trik dengan tar c input_directory | xz --lzma2=dict=128M,mode=fast,mf=hc4 --memory=2G > compressed.tar.xz
. Tidak yakin tentang perlunya mf=hc4
dan --memory=2G
opsi; tetapi dict=128M
atur kamus menjadi cukup besar (lebih besar dari satu file), dan mode=fast
buat prosesnya lebih cepat dari -e
.
xz -1 --memory=2G
tidak membantu, diuji pada 2 dan 4 file dari set.