Há pelo menos quatro trabalhos separados que geralmente são confundidos porque as ferramentas populares os integram:
- Arquivamento: a capacidade de combinar vários arquivos (incluindo metadados) em um único arquivo, preservando o máximo possível de coisas. No mundo Linux / Unix, o arquivamento é tradicionalmente feito no formato de arquivo TAR.
- Compactação: a capacidade de minimizar sem perdas o tamanho de um fluxo de dados binários. No mundo Linux / Unix, isso é tradicionalmente feito pelo GZip e BZip2.
- Criptografia: a capacidade de embaralhar dados com chaves
- Soma de verificação: a capacidade de detectar (e possivelmente corrigir) erros.
A onipresença de .tar.gz e .tar.bz corresponde à filosofia Unix de pequenas ferramentas executando bem um único trabalho, em vez de uma única ferramenta que faz tudo. O formato do arquivo TAR não suporta compactação ou criptografia, mas pode ser compactado ainda mais por qualquer compressor (inclusive como .tar.zip ou .tar.7z). O trabalho do GZip e BZip2 é simplesmente comprimir um fluxo de arquivos para outro fluxo de arquivos; a camada de compressão não precisa se preocupar em preservar os metadados, a criptografia ou a soma de verificação. Com o tempo, porém, vários atalhos foram feitos no tar
programa para trabalhar com um compressor de forma mais conveniente.
Nos formatos zip e 7z, esses trabalhos separados são executados por um único programa em um único formato de super super arquivo.
Por que a tendência acima parece se manter, apesar de todos serem formatos portáteis? Há vantagens específicas em usar um formato de arquivo específico em uma plataforma específica?
Como tem sido assim, os códigos-fonte do programa são tradicionalmente distribuídos como .tar.gz ou .tar.bz2, porque preservar permissões de arquivo, tempo de modificação etc. são importantes para várias ferramentas usadas na programação (por exemplo, make).
A etapa separada de arquivamento e compactação funcionou muito bem por anos, possui uma clara vantagem de poder misturar e combinar livremente arquivamento e compactação, e sua desvantagem (um processo de compactação em duas etapas) pode ser facilmente contornada através do desenvolvimento de ferramentas mais inteligentes ( o programa de compactação linux mais moderno será compactado diretamente para .tar.gz ou .tar.bz2, ocultando a etapa intermediária).
Não há motivos fortes para mudar para outros formatos de arquivo, os compressores mais novos não têm uma taxa de compressão significativamente melhor para justificar a quebra da tradição e o alcatrão pode preservar tudo o suficiente.