
ここで圧縮レベルを設定するにはどうすればいいですか?
nice -n 19 tar -czf $out $in
答え1
nice
圧縮レベルには何も影響しません。カーネルによるプロセスのスケジュールにのみ影響します。以下のすべてのコマンドは、nice
異なる「nice」レベルで実行するために をプレフィックスとして付けることができます。これは圧縮レベルには影響せず、アクションの実行にかかる時間のみに影響します (システムの負荷が高い場合)。
GNU を使用している場合はtar
、圧縮プログラムは または-I
の--use-compress-program
オプションのいずれかで設定できます。
$ tar -I "gzip --best" -c -f archive.tar.gz dir
または
$ tar --use-compress-program="gzip --best" -c -f archive.tar.gz dir
圧縮プログラムを明示的に設定する場合は、この-z
オプションを使用しないことに注意してください。
GNUtar
マニュアルには、使用するプログラムが-d
解凍オプションをサポートしている必要があると記載されています (圧縮されたアーカイブを解凍するためにこれらのオプションを使用する場合) gzip
。
私が見た限りでは、 BSD ではtar
同様の方法で圧縮レベルを指定することはできません。
これを実現するもう 1 つの方法は、明らかに、圧縮されていないアーカイブを作成し、それを希望どおりに圧縮することです。
$ tar -c -f archive.tar dir
$ gzip --best archive.tar
または
$ tar -c dir | gzip --best -o archive.tar.gz
まだ別のGZIP
方法は、渡したいフラグを環境変数に設定することですgzip
。
$ export GZIP='--best'
$ tar -c -z -f archive.tar.gz dir
-I
との使用を除いて--use-compress-program
、最後のいくつかの選択肢は GNU と BSD の両方で動作しますtar
。