Extensão | .tar |
---|---|
Tipo MIME | application/x-tar |
PUID | x-fmt / 265 |
Assinatura | 75 73 74 61 72( hexa ) |
Desenvolvido por | Bell Laboratories |
Versão inicial | Janeiro de 1979 |
Tipo de formato | Arquivo |
Conteúdo de | tar.gz, tar.bz2, tar.xz |
Especificação | Formato aberto |
O programa tar (em inglês t ape ar chiver , literalmente "para arquivador de fita") é um software para arquivamento de arquivos de sistemas do tipo padrão UNIX . Ele foi criado nas primeiras versões do UNIX e padronizado pelos padrões POSIX .1-1988 e POSIX.1-2001 . Existem várias implementações de tar , a mais comumente usada é o GNU tar.
Um arquivo criado pelo tar não está compactado. O arquivo criado é às vezes chamado de tarball .
O arquivamento quase sempre é feito em disco. O uso mais comum agora, no entanto, é criar ou ler um arquivo compactado.
Tar preserva os direitos, proprietário e grupo de arquivos e diretórios. Ele também permite que você salve links simbólicos e blocos especiais ou arquivos orientados a caracteres.
Freqüentemente, um arquivo criado pelo tar é compactado por uma ferramenta de compactação de dados . Os formatos mais comuns são:
Utilitário de compressão | Extensão Unix | Extensão MS-DOS |
---|---|---|
comprimir | .tar.Z | .taz |
gzip | .tar.gz | .tgz |
bzip2 | .tar.bz2 | .tbz |
lzma e xz | .tar.lz | .tlz |
xz | .tar.xz | .txz |
7zip | .tar.7z |
O software UNIX, e particularmente os arquivos de origem, são freqüentemente distribuídos como um arquivo compactado.
Essencialmente, o formato usado consiste em uma concatenação do conteúdo dos arquivos. Cada arquivo é precedido por um cabeçalho de 512 bytes , esse tamanho corresponde ao tamanho de um bloco na versão 7 do sistema de arquivos Unix.
Para melhorar a eficiência da gravação em fita magnética, blocos de 512 bytes são agrupados por padrão , resultando em blocos de 10 KB. O bloco final é preenchido com zeros binários.
Formato de cabeçalhoO formato original do cabeçalho do arquivo no tar é o seguinte:
Sobrenome | Posição | Cortar | Descrição |
---|---|---|---|
nome | 0 | 100 | Nome do arquivo |
moda | 100 | 8 | Permissões |
uid | 108 | 8 | Proprietário (não utilizado se formato estendido) |
gid | 116 | 8 | Grupo (não utilizado se formato estendido) |
Tamanho | 124 | 12 | Tamanho do arquivo em bytes. O tamanho deve ser zero se o arquivo for um arquivo especial (link simbólico, pipe nomeado, "dispositivo" por blocos ou por caracteres, etc.) |
mtime | 136 | 12 | Última modificação no horário Unix . |
chksum | 148 | 8 | Soma de verificação do cabeçalho onde este campo é considerado preenchido com espaços (valor ascii 32) |
tipo de bandeira | 156 | 1 | Tipo de arquivo |
linkname | 157 | 100 | Nome do arquivo apontado por este link simbólico (se o tipo indicar um link simbólico) |
Os campos "modo", "uid", "gid", "tamanho", "mtime" e "chksum" são armazenados em ASCII em um sistema octal (base 8).
Campo | Posição | Cortar | Descrição |
---|---|---|---|
Magia | 257 | 6 | este campo indica se este é um cabeçalho estendido. É então "ustar". |
versão | 263 | 2 | os caracteres "00" indicam um formato POSIX 1003.1-1990. Dois espaços indicam o antigo formato GNU (não deve ser mais usado). |
uname | 265 | 32 | nome do usuário proprietário na forma de uma sequência de caracteres de até 32 caracteres. Se estiver presente, este campo deve ser usado em vez de uid. |
gname | 297 | 32 | nome do grupo proprietário na forma de uma sequência de caracteres de até 32 caracteres. Se estiver presente, este campo deve ser usado em vez de gid. |
devmajor | 329 | 8 | este campo representa o número principal se este arquivo for do tipo "dispositivo" por blocos ou por caracteres |
devminor | 337 | 8 | este campo representa o número menor, se este arquivo for do tipo "dispositivo" por blocos ou por caracteres |
prefixo | 345 | 155 | |
fim | 500 | 0 |
Valor | Significado |
---|---|
'0' | Arquivo normal |
( ASCII NUL ) | Arquivo normal (uso obsoleto) |
'1' | Link de hardware |
'2' | Link simbólico |
'3' | Arquivo de caractere especial |
'4' | Arquivo de bloco especial |
'5' | Diretório |
'6' | Tubo nomeado |
'7' | Arquivo contíguo. |
'g' | Cabeçalho estendido POSIX.1-2001 |
'x' | Cabeçalho estendido com metadados POSIX.1-2001 |
'AZ' | Extensões de formato POSIX.1-1988 |
Os nomes são codificados em ASCII e os valores são octais com dígitos codificados em ASCII para portabilidade. Os valores são pontuados por um NUL ou um espaço. Como 11 caracteres podem ser usados para especificar o tamanho do arquivo, isso cria uma limitação de 811 bytes ou 8 GB por arquivo. Algumas versões, como GNU tar, permitem a codificação de tamanho em formato binário para superar essa limitação.
Formato UStarAs versões atuais do tar usam um formato conhecido como UStar definido pelo padrão POSIX (IEEE P1003.1).
UStar permite nomes de arquivos mais longos e armazena atributos adicionais.
Posição | Cortar | Campo |
---|---|---|
0 | 257 | idêntico ao formato original |
257 | 5 | ustar indica o tipo UStar |
262 | 3 | Versão ( 00 ) |
265 | 32 | Nome do proprietário) |
297 | 32 | Nome do grupo) |
329 | 8 | Arquivo especial (número principal) |
337 | 8 | Arquivo especial (número menor) |
345 | 155 | Prefixo do arquivo |
Aqui estão os comandos comuns para compactar e descompactar arquivos de acordo com sua extensão.
De maneira mais geral, podemos obter o mesmo resultado com:
zcat archive.tar.gz | tar -xv bzcat archive.tar.bz2 | tar -xvNota: Às vezes, gzcat ou gzip -cd é usado .
ou :
tar -cv MonRepertoire | gzip > archive.tar.gz tar -cv MonRepertoire | bzip2 > archive.tar.bz2Isso criará um arquivo compactado no diretório atual (portanto, um único arquivo) contendo todos os arquivos no diretório MyDirectory e seus subdiretórios.
Tar é um formato projetado para o armazenamento incremental de dados em fitas magnéticas. Ele se tornou popular entre os desenvolvedores de sistemas do tipo Unix porque é o único padrão que leva em consideração os metadados do sistema de arquivos.
Os nomes de arquivos e arquivos apontados por links simbólicos são limitados a 100 caracteres (nome completo no arquivo, incluindo o separador de nome de diretório). O sistema de arquivo ext2 aceita nomes de arquivo de 255 bytes. Um sistema Linux aceita nomes absolutos de 4096 bytes.
O tamanho de cada arquivo é limitado a 8 12 -1, ou aproximadamente 68 GiB . Um arquivo tar não tem limite de tamanho.
Tar não tem um índice centralizado. Para extrair um único arquivo do arquivo, você deve, portanto, começar com o primeiro cabeçalho e ler os cabeçalhos um após o outro, na ordem do arquivo tar. Em mídias fisicamente lentas (CD-ROMs, DVDs, até discos rígidos e até cassetes), a leitura de blocos não contíguos para usar muito pouco pode tornar a extração de um ou mais arquivos extremamente lenta, direcionada ou visualizar a lista completa de arquivos.
Armazenar xattrs ou ACLs requer extensões não padrão.
O formato tar é freqüentemente usado em conjunto com utilitários de compactação. No entanto, o formato tar tem a desvantagem de ter muitos bytes não usados em seus cabeçalhos e de usar números na forma ASCII em um sistema octal. Os utilitários, portanto, precisam compactar os dados que são de fato inúteis e os números armazenados de maneira muito fragmentada . Na teoria da compressão de dados, há provas de que adicionar dados intencionalmente, mesmo com o propósito de torná-los mais compactáveis , não é uma boa estratégia no caso geral. Isso adiciona entropia à informação. Como resultado, os dados compactados ocuparão mais espaço no caso geral.
A soma de verificação está apenas no cabeçalho. Além disso, o algoritmo possui baixa resistência a erros. São necessários apenas dois bits bem posicionados para alterar para que esse erro não seja detectado. Para armazenamento e transferência de rede, é recomendado que o programa de compactação usado em conjunto com o tar, use um algoritmo de verificação de integridade (por exemplo , CRC32B , MD5 , SHA1 , etc).
Os antigos formatos gnu e POSIX podem teoricamente conflitar e enganar alguns programas.
Um tarbomb é um arquivo tar contendo uma grande quantidade de arquivos na raiz do pacote. Quando unarchived, arquiva um tarbomb afogar o conteúdo do diretório de trabalho, ou arquivos do usuário sobrescrever que têm o mesmo nome do arquivo. Na melhor das hipóteses, o usuário deve selecionar um a um os arquivos exibidos para copiá-los em um novo diretório, essa classificação pode ser um trabalho tedioso se os arquivos iniciais e os novos estiverem muito misturados.
Portanto, é comum que os arquivos estejam contidos em um diretório que será arquivado, em vez de arquivá-los diretamente. Você também pode extrair os arquivos em um subdiretório dedicado ou examinar o conteúdo do arquivo com a opção t.
Ao contrário do GNU tar, o tar original permitia a criação e extração de arquivos com um caminho absoluto, o que pode ser perigoso. No entanto, ainda é possível referir-se a diretórios pais relativamente (../).
Os números são armazenados em formato ASCII para evitar problemas de endismo .
O formato tar é projetado para sistemas do tipo Unix e nunca procurou ser interoperável com outros sistemas.
A codificação do nome usa a forma binária do nome do arquivo, sem especificar qual codificação foi usada, o que pode causar problemas para o Windows, em particular.
Em sistemas semelhantes ao Unix, todos os caracteres, exceto '/' e o caractere NUL ('\ 0'), são permitidos para nomes de arquivo. No Windows, um certo número de caracteres ('\\', ':', ';', '+', etc.) são proibidos. O Windows não consegue extrair adequadamente esses arquivos.
GNU tar é a implementação do programa tar pelo Projeto GNU . É um software gratuito distribuído sob os termos da GNU General Public License . É a implementação POSIX mais comumente usada hoje.
Histórico de versãoVersão | Data de lançamento | Principais mudanças |
---|---|---|
1,26 | 12 de março de 2011 |
|
1,25 | 7 de novembro de 2010 | |
1,24 | 24 de outubro de 2010 |
|
1,23 | 3 de março de 2010 |
|
1,22 | 5 de março de 2009 |
|
1,21 | 27 de dezembro de 2008 |
|
1,20 | 14 de abril de 2008 |
|
1,19 | 10 de outubro de 2007 | |
1,18 | 29 de junho de 2007 |
|
1,17 | 8 de junho de 2007 | |
1.16.1 | 9 de dezembro de 2006 | |
1,16 | 21 de outubro de 2006 | |
1.15.91 | 16 de junho de 2006 | |
1.15,90 | 19 de fevereiro de 2006 | |
1.15.1 | 21 de dezembro de 2004 | |
1,15 | 20 de dezembro de 2004 |
|
1.14,90 | 2 de setembro de 2004 | |
1,14 | 10 de maio de 2004 |
|