É seguro fazer compressão recursiva com tar, gzip e pigz?

0

Se eu fizer um .tar.gz via

tar czvf - ./myfiles/ | pigz -9 -p 16 > ./mybackup.tar.gz ,

Posso descompactar com segurança um arquivo já gzip'd ./myfiles/an_old_backup.tar.gz dentro do diretório ./myfiles via

gzip -d mybackup.tar.gz
tar -xvf mybackup.tar
cd myfiles
gzip -d an_old_backup.tar.gz
tar -xvf an_old_backup.tar

E pode-se fazer essa compressão recursiva com segurança ad infinitum ?

    
por khaverim 10.02.2017 / 17:51

2 respostas

3

Se a sua pergunta puder ser reformulada como "está tudo bem se você tiver compactado arquivos dentro de arquivos compactados? ", então a resposta é" sim ".

Isso pode não ser o mais conveniente (como você nota, você terá que executar tar vários arquivos para obter tudo descompactado), e aplicando compactação para dados que já foram compactados podem não gerar redução adicional de tamanho, mas tudo funcionará.

    
por 10.02.2017 / 17:59
4
tar czvf - ./myfiles/ | pigz -9 -p 16 > ./mybackup.tar.gz

é o equivalente de

tar cvf - ./myfiles/ | gzip | pigz -9 -p 16 > ./mybackup.tar.gz

Você não está obtendo um tar.gz , mas um tar.gz.gz , um arquivo compactado duas vezes, não um arquivo compactado de arquivos compactados.

Isso é inútil. Saída compactada não é compressível. Você não terá nenhum ganho significativo de espaço ao compactar duas vezes. E para extrair, você precisaria descomprimir duas vezes também com

gunzip < mybackup.tar.gz | gunzip | tar xf -

Ou

gunzip < mybackup.tar.gz | tar xzf -

Se você quiser usar pigz em vez de gzip simples para a compactação, faça:

tar cvf - ./myfiles/ | pigz -9 -p 16 > ./mybackup.tar.gz

Que você pode descompactar com tar zxvf mybackup.tar.gz

Observe também que você nunca deve descompactar um arquivo tar.gz e armazenar a versão descompactada no disco. O ponto inteiro dos compressores como gzip / pigz , bzip2 / pbzip2 , xz / pixz é que eles podem trabalhar em fluxos, basta inseri-los em um pipeline.

    
por 10.02.2017 / 18:16