TAR

O que é um arquivo TAR?

Junta arquivos sem comprimir. É a etapa de empacotamento no Unix, quase sempre acompanhada de GZ.

O que é TAR

TAR é um contêiner: um invólucro para fluxos que outra coisa codificou. Ele é usado para o arquivamento e mover dados entre programas.

A extensão é .tar e o nome por extenso é Tape Archive. Os dois importam menos do que aquilo que o arquivo consegue carregar, e é disso que trata o resto desta página.

De onde vem TAR

Ele remonta a 1979. A especificação é POSIX.1-2001 ustar.

A um formato que se manteve legível por tanto tempo dá para confiar algo que você quer de volta daqui a dez anos.

A especificação é pública

Ela está publicada por inteiro, então dá para implementá-la a partir do documento em vez de por observação — é por isso que o formato aparece em tantos programas e por isso que arquivos escritos há vinte anos ainda abrem. Especificação publicada não é o mesmo que livre de royalties: quando o formato embrulha um codec, o licenciamento das patentes é uma questão à parte, que a norma não resolve.

Nada é jogado fora

TAR guarda o conteúdo exatamente. Salvar de novo não muda nada, então dá para abrir, editar e salvar quantas vezes você quiser sem acumular estrago — e é isso que faz dele um formato de trabalho e não de entrega.

Ele pode carregar uma pasta inteira

TAR guarda um diretório: nomes, pastas e a estrutura entre eles. É isso que permite a ele substituir uma pasta num anexo de e-mail.

O que ele faz para se proteger

TAR traz uma soma de verificação, para que um arquivo danificado seja detectado em vez de lido errado em silêncio.

Consertar, uma soma de verificação não conserta nada. Ela diz que o arquivo está errado — essa é a diferença entre descobrir agora e descobrir por quem recebeu.

O que abre TAR

tar, 7-Zip e Keka leem esse formato, e a maioria dos programas do mesmo tipo também.

Quando um arquivo não abre, o formato raramente é o problema — mais comum é o programa ser mais antigo que ele. Converter para algo mais antigo é o caminho confiável, e é para isso que serve o resto deste site.

Abrir no navegador

Nenhum navegador lê o formato.

Esse é de longe o motivo mais comum para convertê-lo: não que o formato seja ruim, mas que o lugar onde você quer mostrar o arquivo não consegue lê-lo.

É um formato de trabalho

TAR foi feito para ser aberto e alterado. Mantenha o arquivo nesse formato enquanto o trabalho estiver em andamento e exporte a partir dele sempre que precisar de uma cópia pronta.

O que dá errado com ele

As reclamações que se repetem: os arquivos são grandes para o que carregam.

Nada disso é motivo para evitar o formato. São as coisas que vale conhecer antes que uma delas te pegue de surpresa, o que é uma afirmação diferente e mais útil.

Não comprime nada, e esse é o fato que resolve tudo

O TAR agrupa arquivos num arquivo só. Não os deixa menores. O nome é abreviação de tape archive (arquivo de fita), e foi projetado em 1979 para escrever uma árvore de diretórios numa fita magnética como um fluxo único e contínuo — um trabalho em que a compressão era problema de outra pessoa, geralmente do próprio drive de fita.

Quase toda coisa confusa sobre o TAR vem daí. Um .tar de uma pasta fica um pouco maior do que a pasta era, porque acrescenta um cabeçalho antes de cada arquivo e completa tudo até um tamanho de bloco fixo. Se você esperava um arquivo menor, nada deu errado; você usou a ferramenta que agrupa, não a que encolhe.

Por que a extensão tem duas partes

Porque dois programas separados rodaram. "arquivo.tar.gz" foi agrupado pelo tar e depois o arquivo resultante foi comprimido pelo gzip. ".tar.bz2" usou bzip2, ".tar.xz" usou xz, ".tar.zst" usou zstd. A cadeia se lê da direita para a esquerda: desfaça a compressão, depois desfaça o agrupamento.

As formas curtas ".tgz" e ".txz" significam a mesma coisa e existem porque alguns sistemas de arquivos antigos tinham problema com mais de um ponto. Essa composição de ferramentas pequenas fazendo um trabalho cada uma é deliberada, não acidental, e é também o motivo de o TAR ter sobrevivido aos drives de fita para os quais foi escrito.

Comprimir o pacote vence comprimir os arquivos

Essa ordem é o motivo de um .tar.gz frequentemente vencer o ZIP no mesmo conteúdo. O ZIP comprime cada arquivo separadamente, então mil arquivos de texto parecidos são espremidos cada um isoladamente. Tar-e-depois-gzip apresenta ao compressor um fluxo contínuo, permitindo encontrar repetição que atravessa as fronteiras entre arquivos.

Em código-fonte, arquivos de log ou qualquer coisa com muitos arquivos pequenos parecidos, a diferença é substancial. Numa pasta de fotografias, é quase nenhuma, porque JPEGs já estão comprimidos e não há repetição entre arquivos para encontrar. A vantagem é real e é específica de um tipo de conteúdo.

O custo: você não consegue pegar um arquivo de dentro rapidamente

Esse mesmo fluxo contínuo é o motivo de extrair um único arquivo de um .tar.gz grande ser lento. Não existe índice, e a compressão significa que posições de byte não podem ser calculadas de antemão, então o único jeito de chegar a um arquivo perto do fim é descompactar tudo antes dele.

O ZIP fez a troca oposta. O índice fica no fim do arquivo e cada entrada é comprimida independentemente, então qualquer item único pode ser extraído imediatamente. É toda a comparação: TAR para arquivos lidos do começo, ZIP para arquivos consultados aos pedaços.

O que ele preserva que o ZIP não preserva

Permissões Unix, propriedade do arquivo, links simbólicos e links físicos, além de horários com mais precisão do que o ZIP registra. É por isso que software é distribuído como .tar.gz em vez de ZIP: descompactar precisa produzir uma árvore em que o executável continua executável e os links continuam apontando para onde apontavam.

No Windows, quase tudo isso não tem para onde ir e é descartado silenciosamente. Nada quebra, mas um .tar.gz descompactado no Windows e reempacotado perdeu as permissões que existia para carregar — o que importa se o arquivo está voltando para um servidor.

Qual compressor, e para que serve cada um

O gzip é rápido, universal e a escolha padrão segura; é o que quase tudo produz e tudo lê. O xz comprime visivelmente mais e demora consideravelmente mais, o que combina com algo escrito uma vez e baixado muitas vezes. O bzip2 fica entre os dois e hoje é largamente uma escolha legada. O zstd é o mais novo e comprime perto do xz em velocidades próximas do gzip.

Para um arquivo entregue a outra pessoa, .tar.gz continua sendo a resposta certa, porque o teto é o que o destinatário consegue abrir, não o que comprime melhor. Os outros valem a pena quando você conhece o outro lado.

Um formato com várias versões incompatíveis

O projeto original fixava nomes de arquivo em 100 caracteres e não tinha espaço para arquivos grandes ou caminhos longos. Duas extensões resolveram isso de forma independente — a do GNU tar e o formato POSIX pax — e resolveram de jeitos diferentes, então um arquivo escrito por uma pode confundir um leitor rígido que espera o outro.

Na prática, ferramentas modernas leem todas essas variantes e isso raramente aparece. Onde aparece, o sintoma é distinto: nomes de arquivo truncados, ou um erro sobre caminho longo demais, num arquivo que de resto está perfeito.

Onde você realmente vai encontrar um

Lançamentos de código-fonte, distribuição de software Linux e macOS, camadas de imagem Docker, backups de servidor, e os arquivos de exportação que painéis de hospedagem e bancos de dados produzem. Se você baixou algo para rodar num servidor, muito provavelmente chegou assim.

Também aparece mais no Windows do que costumava. O Windows descompacta .tar.gz nativamente desde 2023, e o comando tar embutido está lá desde 2018, então a era de precisar de uma ferramenta de terceiros só para abrir um já passou em grande parte.

Quando converter para ZIP, e quando não

Converta quando o arquivo vai para uma pessoa em vez de uma máquina — um colega no Windows, um formulário de upload web, um anexo de e-mail. ZIP é o formato que todo sistema operacional abre sem pensar, e enviar outra coisa é pedir silenciosamente ao destinatário para resolver um problema.

Não converta quando o arquivo está voltando para um sistema Unix. Reempacotar como ZIP descarta as permissões, a propriedade e os links simbólicos que o formato existia para carregar, e o resultado extraído pode simplesmente não funcionar. Para um backup de servidor ou lançamento de código-fonte, .tar.gz não é um obstáculo a contornar; é o motivo de o arquivo funcionar.

Os dados, num lugar só

Identificadores e procedência do formato TAR.
Extensão.tar
Tipo de mídiaapplication/x-tar
Primeira publicação1979
EspecificaçãoPOSIX.1-2001 ustar