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 .