definir nível de compactação com nice e tar

1

Como definir o nível de compactação aqui?

nice -n 19 tar -czf $out $in
    
por clarkk 20.05.2017 / 14:49

1 resposta

4

nice não fará nada ao 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 "nice" diferente, ele não influenciará o nível de compactação, somente o tempo gasto para executar a ação (se o sistema estiver sob carga pesada).

Se você estiver usando o GNU tar , o programa de compactação pode ser definido 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 opção -z não deve ser usada se você definir o programa de compactação explicitamente.

O manual GNU tar informa que o programa usado deve suportar uma opção -d para descompactação (se você usar essas opções para descompactar um arquivo compactado), o que gzip faz.

Com BSD tar , não é possível especificar o nível de compactação de maneira semelhante, até onde eu vi.

A outra maneira de conseguir isso é obviamente criar um arquivo não compactado e 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

No entanto, outra maneira é definir a variável de ambiente GZIP para os sinalizadores que você gostaria de passar para 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 com GNU e BSD tar .

    
por 20.05.2017 / 14:56

Tags