
Wie wird hier die Komprimierungsstufe eingestellt?
nice -n 19 tar -czf $out $in
Antwort1
nice
hat keine Auswirkungen auf den Komprimierungsgrad. Es beeinflusst nur die Planung des Prozesses durch den Kernel. Alle unten aufgeführten Befehle können mit einem Präfix versehen werden, um nice
sie auf einem anderen „Nice“-Level auszuführen. Dies hat keinen Einfluss auf den Komprimierungsgrad, sondern nur auf die Zeit, die für die Ausführung der Aktion benötigt wird (wenn das System stark ausgelastet ist).
Wenn Sie GNU verwenden tar
, kann das Komprimierungsprogramm mit -I
den --use-compress-program
Optionen oder eingestellt werden:
$ tar -I "gzip --best" -c -f archive.tar.gz dir
oder
$ tar --use-compress-program="gzip --best" -c -f archive.tar.gz dir
Beachten Sie, dass die -z
Option nicht verwendet werden sollte, wenn Sie das Komprimierungsprogramm explizit festlegen.
Im GNU- tar
Handbuch steht, dass das verwendete Programm eine Option zum Dekomprimieren unterstützen muss -d
(sofern Sie diese Optionen zum Dekomprimieren eines komprimierten Archivs verwenden), was auch der gzip
Fall ist.
Bei BSD tar
ist es, soweit ich gesehen habe, nicht möglich, den Komprimierungsgrad auf ähnliche Weise anzugeben.
Die andere Möglichkeit, dies zu erreichen, besteht offensichtlich darin, ein unkomprimiertes Archiv zu erstellen und dieses dann nach Wunsch zu komprimieren:
$ tar -c -f archive.tar dir
$ gzip --best archive.tar
oder
$ tar -c dir | gzip --best -o archive.tar.gz
Nochein andererMöglichkeit besteht darin, die Umgebungsvariable auf die Flags festzulegen GZIP
, die Sie übergeben möchten gzip
:
$ export GZIP='--best'
$ tar -c -z -f archive.tar.gz dir
Mit Ausnahme der Verwendung von -I
und --use-compress-program
funktionieren die letzten Alternativen sowohl mit GNU als auch mit BSD tar
.