したがって、最大圧縮を使用してディレクトリを圧縮する必要があります。
どうすればいいですかxz
?tar
ただ使えないのでそれも必要だという意味ですxz
。たとえば、作成できるオネライナーはありますかfoo.tar.xz
?
答え1
tar
派生シェルで最新のbashまたはGNUを使用してください。
XZ_OPT=-9 tar cJf tarfile.tar.xz directory
tarの小文字のjスイッチはbzipを使用し、大文字のJスイッチはxzを使用します。
環境変数を使用すると、呼び出し元アプリケーションで設定できない設定をXZ_OPT
指定できます。 xz
tar
これは今です最高。
man xz
設定できる他のオプションを見る(-e
/--extreme
可能特定のデータセットに対して追加の圧縮利点を提供します。
XZ_OPT=-e9 tar cJf tarfile.tar.xz directory
答え2
xz
圧縮レベルフラグを含む標準のコマンドラインフラグセットに従うと仮定すると、次のことを試すことができます。
tar -cf - foo/ | xz -9 -c - > foo.tar.xz
答え3
XZ_OPT=-9e tar cJf tarfile.tar.xz directory
それより良い
XZ_OPT=-9 tar cJf tarfile.tar.xz directory
オプション-e、「--extreme圧縮プリセットの変更(-0 ... -9)」は、圧縮機または圧縮解除器のメモリ使用量を増やすことなく、より良い圧縮率を得るために(例外:圧縮メモリ使用量が増加する可能)プリセット-0を使用します。 .. -2)少し増加します。欠点は、圧縮時間が劇的に増加することです(簡単に2倍になります)。
答え4
tar --help
: -I, --use-compress-program=PROG
tar -I 'xz -9' -cvf foo.tar.xz foo/
tar -I 'gzip -9' -cvf foo.tar.gz foo/
圧縮には外部圧縮機を使用することもできる。
tar -I 'lz4 -9' -cvf foo.tar.lz4 foo/
tar -I 'zstd -19' -cvf foo.tar.zst foo/
外部圧縮機の解凍:
tar -I lz4 -xvf foo.tar.lz4
tar -I zstd -xvf foo.tar.zst
アーカイブされた外部圧縮機のリスト:
tar -I lz4 -tvf foo.tar.lz4
tar -I zstd -tvf foo.tar.zst