Mam setki podobnych dużych plików (po 30 megabajtów), które chcę skompresować. Każda para plików ma 99% tych samych danych (różnica mniejsza niż 1%), więc spodziewam się, że nie będę mieć więcej niż 40-50 megabajtów archiwum.
Pojedynczy plik może być skompresowany od 30 MB do 13-15 MB (z xz -1
, gz -1
, bzip2 -1
), ale podczas kompresji dwa lub więcej plików Chcę mieć archiwum o wielkości 13-15MB + N*0.3MB
gdzie N jest liczba plików.
Podczas używania tar
(do tworzenia solidnego archiwum) i xz -6
(do zdefiniowania słownika kompresji jako większego niż jeden plik - Aktualizacja - to nie wystarczyło! ), Nadal mam archiwum o rozmiarze N*13MB
.
Myślę, że jedno gzip
i drugie bzip2
nie pomoże mi, ponieważ mają słownik mniejszy niż 1 MB, a mój strumień tar ma powtórzenia co 30 MB.
Jak mogę zarchiwizować mój problem we współczesnym systemie Linux przy użyciu standardowych narzędzi?
Czy można dostroić xz
kompresję szybko, ale używać słownika większego niż 30–60 MB?
Aktualizacja : rozwiązał problem tar c input_directory | xz --lzma2=dict=128M,mode=fast,mf=hc4 --memory=2G > compressed.tar.xz
. Nie jestem pewien co do koniecznych opcji mf=hc4
i --memory=2G
opcji; ale dict=128M
ustaw słownik na wystarczająco duży (większy niż jeden plik) i mode=fast
spraw, aby proces był nieco szybszy niż -e
.
xz -1 --memory=2G
nie pomogło, przetestowane na 2 i 4 plikach z zestawu.