A especificação do mecanismo de compactação para o tar usa, na verdade, menos espaço em disco intermediário que a tarring e depois a compactação?

0

Quando eu uso tar para arquivar um diretório e depois compactá-lo separadamente usando, por exemplo, xz , haverá um ponto em que eu tenho três arquivos no meu sistema - dir , dir.tar e dir.tar.xz . Assim que a compactação for concluída, dir.tar será excluído, mas parece que ainda preciso ter espaço livre suficiente para acomodar todos os três arquivos nessa configuração.

Ao usar o sinalizador de compactação com o tar diretamente, o arquivo compactado é criado sem um .tar intermediário observável e parece que eu só preciso de espaço livre igual ao diretório e ao arquivo compactado.

Inicialmente, estava a hipótese de que talvez o arquivo tar fosse criado e eliminado pouco a pouco quando foi comprimido, mas, ao mesmo tempo, lembro-me de ter lido que todo o arquivo tar precisa ser criado antes da compactação. Não consigo observar nenhum arquivo tar temporário, oculto ou não.

O uso de tar com um sinalizador de compactação, na verdade, precisa de menos espaço livre em disco do que quando o primeiro uso de tar seguido por um utilitário de compactação? Por que / por que não (talvez um passo a passo do que o flag tar + compression faz)?

    
por joelostblom 12.02.2015 / 16:09

1 resposta

2

Sim, usar diretamente os sinalizadores de compactação no comando tar (por exemplo, tar czf ) reduzirá o uso do disco intermediário, pois não cria nenhum arquivo tar descompactado temporário, mas usa pipes para passar o stdout do tar diretamente para stdin do utilitário de compactação.

Dependendo de como os pipes são implementados em seu sistema em particular, tar pode parecer estar gravando um arquivo, mas esse arquivo será realmente uma fila FIFO sem consumo considerável de espaço.

Sem a bandeira:
Arquivos > tar = arquivos originais + .tar do mesmo tamanho
.tar > gzip = .tgz = arquivos originais + .tar + .tgz
O uso total do disco antes de excluir o .tar é de 2 a 3 vezes os arquivos originais, dependendo da taxa de compactação.

Com a bandeira:
Arquivos > tar > gzip = arquivos + .tgz
O pior uso é de 2x os arquivos originais.

    
por 12.02.2015 / 16:42