Além da resposta @Lekensteyn, eu gostaria de acrescentar que este comportamento é baseado em fazer uma coisa e fazê-lo bem a filosofia - tarprograma sabe como colocar vários arquivos em um único fluxo (com .tarextensão), gzipsabe como comprimir um arquivo único (adicionando .gzextensão) *. Ao combinar essas ferramentas, você pode criar um comando que comprime vários arquivos em um único .tag.gzarquivo.
Essa abordagem é muito flexível - você pode combinar alguns comandos padrão do Unix para fazer todo tipo de coisa. Por exemplo, se você escrever um programa melhor para compactar arquivos, não precisará modificá tar-lo para permitir a criação de .tar.mymegaziparquivos; em vez disso, basta direcionar tara saída para o seu compressor.
Da mesma forma, tarnada sabe sobre SSH, mas, combinando comandos, você pode criar um script que arquiva arquivos, carrega-os em uma máquina remota via SSH e des-arquiva-os lá.
Compare isso ao zipcomando, que não se originou no Unix - ele possui ferramentas internas para compactar diretórios inteiros, criptografar arquivos, dividir o arquivo em arquivos zip menores etc.
(nota de rodapé) - sim, taré capaz de compactar ou compactar os arquivos com gzip ou bzip, usando -ze -jalternando, eles foram adicionados por conveniência e o tar do GNU está realmente gerando gzipou bzip2como um novo processo.
tar c dir/ | gzip > dir.tar.gzetar czf dir.tar.gz dir/comandos fazem a mesma coisa. Um exemplo, ondetaré combinado com SSH etar(novamente):tar cz Documents/ | ssh user@host 'tar xz(equivalente rsync seria:rsync -a Documents user@host:)