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.