Formato de arquivo TAR

O formato de arquivo tar oferece uma maneira confiável de armazenar arquivos. Ele preserva os dados originais byte por byte, adicionando um cabeçalho de 512 bytes no início. Os tamanhos dos arquivos também são ajustados para caber perfeitamente em blocos de 512 bytes. Curiosamente, o cabeçalho inclui uma soma de verificação integrada para detecção de erros. Embora o utilitário tar padrão possa ignorar cabeçalhos corrompidos (e, consequentemente, os arquivos associados), ele continuará processando o restante do arquivo, garantindo que você ainda possa acessar arquivos não danificados.

Sobre as informações do arquivo TAR

Um formato de arquivo tar, abreviação de “tape archive”, é criado pelo utilitário tar em sistemas UNIX. Ele serve como um arquivo para agrupar arquivos para tarefas como backup ou distribuição. Ao contrário dos formatos de arquivo compactado, os arquivos tar armazenam vários arquivos, também conhecidos como tarball, em um formato descompactado junto com metadados sobre o arquivo. Embora os arquivos tar em si não sejam compactados, eles podem ser compactados usando utilitários como gzip ou bzip2 para armazenamento e transferência eficientes.
Como o formato de arquivo tar em si não inclui compactação integrada, os arquivos tar são frequentemente compactados usando utilitários externos como gzip, bzip2, XZ (utilizando algoritmos de compactação 7-Zip / p7zip LZMA / LZMA2), Brotli, Zstandard e ferramentas semelhantes. Essa compactação ajuda a reduzir o tamanho do arquivo para facilitar a portabilidade e fazer backup de dados eficiente. Os arquivos compactados resultantes desse processo podem ter extensões simples como tgz, tbz, txz, tzst ou extensões duplas como tar.gz, tar.br, tar.bz2, tar.xz, tar.zst.

Evolução do formato de arquivo TAR

O formato de arquivo tar evoluiu ao longo do tempo. Novos recursos adicionados ao utilitário tar desde a década de 1980 levaram a extensões de formato que incluem informações adicionais para melhorar a funcionalidade. Os primeiros formatos tar não tinham consistência na forma como os campos numéricos eram armazenados, mas isso foi resolvido em versões posteriores para melhorar a portabilidade. Essa melhoria começou com o primeiro padrão POSIX para formatos tar em 1988.
POSIX.1 2001 introduziu o formato “tar estendido” (também conhecido como tar.h ou pax). Este formato é o mais flexível, incorporando funcionalidades de outras especificações tar. Ele permite que os fornecedores adicionem recursos personalizados usando tags. Embora a documentação destaque que nem todas as implementações tar podem lidar perfeitamente com este formato, seu design garante que qualquer ferramenta capaz de ler arquivos “ustar” também possa ler a maioria dos arquivos “posix”. Além disso, o POSIX.1 2001 eliminou a limitação anterior de tamanho de arquivo de 8 GB para arquivos tar.

Estrutura TAR

Um arquivo TAR, em sua essência, é uma sequência de blocos de dados. Esses blocos de tamanho fixo 512 bytes cada um são organizados linearmente. Para marcar o final do arquivo, existem dois blocos consecutivos preenchidos com zeros.
No entanto, quando visto logicamente, um arquivo TAR é uma série de entradas de arquivo. Cada entrada é composta por vários blocos, sendo o primeiro bloco sempre o cabeçalho da entrada. Os blocos restantes armazenam o conteúdo real do arquivo.
Dentro do cabeçalho de entrada
O cabeçalho de entrada atua como um modelo para cada arquivo dentro do arquivo. Ele contém as seguintes informações

  • Nome do arquivo (100 bytes): O nome do arquivo armazenado nesta entrada.
  • Permissões de Arquivo (8 bytes): Permissões de acesso ao arquivo, representadas como uma string octal.
  • ID do proprietário (8 bytes): O ID numérico do usuário do proprietário do arquivo (formato octal).
  • ID do grupo (8 bytes): O ID numérico do grupo do proprietário do arquivo (formato octal).
  • Tamanho do arquivo (12 bytes): O tamanho do arquivo em formato octal.
  • Hora da última modificação (12 bytes): O carimbo de data/hora octal da última modificação do arquivo.
  • Checksum (8 bytes): Um valor de checksum usado para verificar a integridade dos dados do cabeçalho.
  • Tipo de arquivo (1 byte): Indica o tipo de arquivo armazenado (arquivo normal, link físico ou link simbólico).
  • Nome do arquivo vinculado (comprimento variável): Se a entrada for um link (físico ou simbólico), este campo armazena o nome do arquivo vinculado.

Benefícios deste formato

  • Versatilidade - TAR é um formato versátil capaz de armazenar vários arquivos e diretórios em um único arquivo, tornando-o adequado para diversas necessidades de backup e distribuição.
  • Preservação de atributos de arquivo O TAR preserva atributos importantes de arquivo, como permissões, propriedade e carimbos de data/hora, garantindo que os dados arquivados mantenham sua integridade e usabilidade.
  • Simplicidade - A estrutura dos arquivos TAR é simples e direta, tornando-os fáceis de trabalhar e processar. Isto simplifica a programação e automação de tarefas relacionadas aos arquivos TAR.

Operações suportadas pelo arquivo TAR

Aspose.ZIP permite ao usuário extrair uma entrada específica ou um arquivo inteiro. Para Aspose.ZIP for .NET Você pode usar o TarArchiveClass para abrir o arquivo .tar.gz e, em seguida, iterar por suas entradas, extraindo-as para um local desejado. Para Aspose.ZIP para Java Abordagem semelhante usando o TarArchive para abrir o arquivo .tar.gz e extrair entradas.

Arquivo TAR - Estrutura Interna

Os arquivos de segmento armazenam dados brutos sobre um segmento. Embora existam diferentes tipos de segmento, os arquivos TAR diferenciam apenas entre dados e segmentos em massa. Os segmentos em massa são salvos diretamente “como estão” no arquivo TAR.
Os segmentos de dados, entretanto, são examinados para encontrar referências a outros segmentos ou conteúdo binário bruto. Essas referências são simplesmente armazenadas como uma lista de identificadores exclusivos (UUIDs) no segmento de dados. Os segmentos referenciados podem estar localizados no arquivo TAR atual ou externamente.
As referências internas são encontradas verificando o índice do arquivo TAR. As referências externas requerem uma ferramenta externa para localizar o segmento em outro arquivo TAR. A lista de segmentos referenciados em um segmento de dados é armazenada no arquivo gráfico para recuperação mais rápida. Esta lista é mantida ordenada para otimizar o processo de pesquisa.

Arquivo TAR - Estrutura Interna

Estrutura interna do arquivo

  • Metadados do arquivo - Semelhante a um arquivo tar, cada arquivo armazena informações básicas como horário de modificação e permissões. No entanto, esta seção é flexível e permite omitir ou incluir detalhes adicionais como listas de controle de acesso (ACLs) ou atributos estendidos (EAs) com base em suas necessidades. É recomendado incluir uma função hash forte (como SHA1) para arquivos regulares para garantir a integridade dos dados.
  • Vários fluxos de conteúdo - Ao contrário dos arquivos tradicionais, os arquivos podem ter mais de um fluxo de dados dentro do arquivo de dados interno. Isso é útil para armazenar atributos estendidos ou bifurcações de recursos associadas ao arquivo.
  • Cabeçalhos - O arquivo de índice interno contém cabeçalhos de arquivo, espelhando aqueles espalhados pelo arquivo de dados interno. Mas, quando armazenados separadamente, os cabeçalhos do índice devem fazer referência à posição inicial dos dados correspondentes no arquivo de dados. Além disso, as entradas de diretório no índice listam os arquivos contidos e seus deslocamentos correspondentes no índice de arquivo interno.
  • Justificativa para metadados duplicados - Esta escolha de design garante fluxo/decodificação eficiente de dados e acesso aleatório a arquivos. Além disso, os metadados são bem compactados, resultando em sobrecarga mínima de armazenamento. Os testes mostram que os metadados normalmente ocupam menos de 0,3% do espaço de armazenamento, fazendo com que a compensação valha a pena.
  • Cabeçalhos de bloco - Os cabeçalhos de bloco, semelhantes ao arquivo externo, contêm informações de tamanho de bloco e uma sequência de identificador exclusiva.

Exemplos de uso de TAR

A API Aspose.ZIP permite extrair arquivos em seus aplicativos sem a necessidade de quaisquer outros aplicativos de terceiros. A API Aspose.ZIP fornece a classe TarArchive para trabalhar com arquivos TAR.

Add entries to existing TAR archive via C#

All you need to do is open archive for extraction and add entry to archive .

    using (TarArchive archive = new TarArchive(existing.tar))
    {
        archive.CreateEntry("one_more.bin", data.bin);
        archive.Save(added.tar);
    }

Delete entries from existing TAR archive via .net

Entries of tar archive can be deleted with similar DeleteEntry methods.

using (var archive = new TarArchive("two_files.tar"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.tar");
}

Add files to TAR archive without compression

Tar is a file archival format used to group multiple files and directories into a single archive file without compression , unlike formats like ZIP, RAR and others. To create a tar archive without specifying any compression settings, simply use a TarArchive instance.

    using (FileStream tarFile = File.Open("joint.tar", FileMode.Create))
    {
        FileInfo fi1 = new FileInfo("text.txt");
        FileInfo fi2 = new FileInfo("picture.png");
        using (TarArchive archive = new TarArchive())
        {
            archive.CreateEntry("text.txt", fi1);
            archive.CreateEntry("picture.png", fi2);
            archive.Save(tarFile);
        }
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Informações adicionais sobre arquivos TAR

As pessoas têm perguntado

1. O que é um arquivo TAR?

Um arquivo TAR, abreviação de Tape Archive, é um formato de arquivo usado para agrupar vários arquivos e diretórios em um único arquivo sem compactação. É comumente usado para fins de backup e distribuição em sistemas baseados em Unix.

2. Quais são os benefícios dos arquivos TAR?

O TAR possui universalidade, pois é compatível com a maioria dos sistemas operacionais e programas de arquivo, facilitando o compartilhamento e a troca contínua de dados entre diferentes plataformas. Sua simplicidade reside na estrutura simples dos arquivos TAR, permitindo a criação, extração e manipulação de arquivos sem esforço. Além disso, o TAR oferece eficiência ao permitir a compactação com ferramentas externas como gzip ou bzip2, permitindo aos usuários reduzir o tamanho do arquivo e economizar espaço de armazenamento e largura de banda durante a transmissão de dados.

3. Quais são algumas limitações dos arquivos TAR?

Embora TAR seja um formato de arquivo versátil comumente usado para arquivar e distribuir arquivos em sistemas baseados em Unix, ele apresenta algumas limitações que você deve conhecer. Em primeiro lugar, o TAR não possui recursos de compactação integrados, o que significa que você precisará de ferramentas adicionais como gzip ou bzip2 para reduzir o tamanho dos arquivos. Em segundo lugar, os arquivos TAR não oferecem recursos de criptografia nativos; portanto, se você precisar de segurança de dados, terá que contar com ferramentas externas para proteção por senha. Por último, o TAR tem suporte limitado para preservar atributos de arquivo, como carimbos de data e hora e permissões dos arquivos originais, o que pode afetar a integridade dos dados arquivados.