Tradicionalmente, os sistemas Unix usavam um programa para realizar uma tarefa de acordo com a filosofia Unix : tar
era apenas um meio de empacotar vários arquivos em um único arquivo, originalmente para backup em fita (portanto tar
, t ape ar cebolinha). tar
não fornece compactação; o arquivo descompactado resultante é normalmente compactado com algum outro programa como gzip
, bzip2
ou xz
. Antigamente, eles usavam o comando compress
para fazer isso; algoritmos de compressão mais recentes são muito mais eficazes do que isso.
A abordagem altamente modularizada ditada pela filosofia Unix significa que cada programa pode ser usado individualmente, conforme apropriado, ou combinado para executar tarefas mais complexas, incluindo a criação de arquivos compactados, conforme descrito aqui. Para esses tipos de tarefas, também facilita a troca de ferramentas individuais conforme necessário; você apenas alteraria o programa de compactação para usar um algoritmo de compactação diferente, sem precisar substituir o utilitário tar
em si.
Esta abordagem modular não é isenta de desvantagens. Como mencionado em comentários para outras respostas, um formato de arquivo compactado dedicado como .zip
é mais capaz de lidar com a extração de arquivos individuais; tarballs compactados precisam ser descompactados quase na íntegra para extrair arquivos perto do final do arquivo, enquanto .zip
archives permite acesso aleatório ao seu conteúdo. (Alguns formatos mais recentes, como .7z
, suportam arquivos sólidos e não sólidos, bem como blocos sólidos de vários tamanho em arquivos maiores.) O uso contínuo de tar
em conjunto com um utilitário de compressão separado é uma questão de tradição e compatibilidade; também, .7z
e .zip
não suportam metadados do sistema de arquivos Unix, como permissões.