Wenn Sie 16 GB RAM haben (und nichts anderes läuft), können Sie versuchen:
tar -cf - foo/ | xz --lzma2=dict=1536Mi,nice=273 -c - > foo.tar.xz
Für die Dekomprimierung werden 1,5 GiB benötigt, für die Komprimierung etwa das 11-fache. Passen Sie dies bei geringerem Speicherbedarf entsprechend an.
Dies wird helfen , nur dann , wenn die Daten tatsächlich so groß ist, und in jedem Fall wird es nicht helfen , DASS viel, aber immer noch ...
Wenn Sie Binärdateien komprimieren, fügen Sie --x86 als erste xz-Option hinzu. Wenn Sie mit "Multimedia" -Dateien spielen (unkomprimiertes Audio oder Bitmaps), können Sie es mit --delta = dist = 2 versuchen (experimentieren Sie mit Wert, gute Werte sind 1..4).
Wenn Sie sehr abenteuerlustig sind, können Sie versuchen, mit mehr LZMA-Optionen zu spielen, wie z
--lzma2=dict=1536Mi,nice=273,lc=3,lp=0,pb=2
(Dies sind die Standardeinstellungen. Sie können Werte zwischen 0 und 4 ausprobieren, und lc + lp dürfen 4 nicht überschreiten.)
Um zu sehen, wie die Standardvorgaben diesen Werten zugeordnet sind, können Sie die Quelldatei src / liblzma / lzma / lzma_encoder_presets.c überprüfen. Nichts von großem Interesse (-e setzt die schöne Länge auf 273 und passt auch die Tiefe an).
man 1 xz
sagtit's not a good idea to blindly use -9 for everything like it often is with gzip(1) and bzip2(1).
-7 ... -9 [...] These are useful only when compressing files bigger than 8 MiB, 16 MiB, and 32 MiB, respectively.
RTFM für weitere Informationen.