
Como definir o nível de compressão aqui?
nice -n 19 tar -czf $out $in
Responder1
nice
não fará nada no nível de compactação. Isso afetará apenas o agendamento do processo pelo kernel. Todos os comandos abaixo podem ser prefixados com nice
para executá-los em um nível "legal" diferente, isso não influenciará o nível de compactação, apenas o tempo necessário para executar a ação (se o sistema estiver sob carga pesada).
Se você estiver usando GNU tar
, o programa de compactação poderá ser configurado com as opções -I
ou :--use-compress-program
$ tar -I "gzip --best" -c -f archive.tar.gz dir
ou
$ tar --use-compress-program="gzip --best" -c -f archive.tar.gz dir
Observe que a -z
opção não deve ser usada se você definir explicitamente o programa de compactação.
O manual GNU tar
afirma que o programa usado deve suportar uma -d
opção de descompactação (se você usar essas opções para descompactar um arquivo compactado), o que gzip
suporta.
Com o BSD tar
não é possível especificar o nível de compressão de forma semelhante, pelo que vi.
A outra maneira de conseguir isso é obviamente criar um arquivo não compactado e depois compactá-lo da maneira desejada:
$ tar -c -f archive.tar dir
$ gzip --best archive.tar
ou
$ tar -c dir | gzip --best -o archive.tar.gz
AindaoutroA maneira é definir a GZIP
variável de ambiente para os sinalizadores para os quais você gostaria de passar gzip
:
$ export GZIP='--best'
$ tar -c -z -f archive.tar.gz dir
Exceto pelo uso de -I
e --use-compress-program
, as últimas alternativas funcionam tanto com GNU quanto com BSD tar
.