Sei que isso tar
foi feito para arquivos de fita antigamente, mas hoje temos formatos de arquivos que agregam arquivos e executam compactação no mesmo formato de arquivo lógico.
Questões:
Existe uma penalidade de desempenho durante os estágios de agregação / compactação / descompactação pelo uso
tar
encapsuladogzip
oubzip2
, quando comparado ao uso de um formato de arquivo que agrega e compacta na mesma estrutura de dados? Suponha que o tempo de execução do compressor que está sendo comparado seja idêntico (por exemplo, gzip e Deflate são semelhantes).Existem recursos do
tar
formato de arquivo que outros formatos, como.7z
e.zip
não possuem?Desde
tar
é tal um formato de arquivo de idade, e formatos de arquivo mais recentes existem hoje, por que étar
(seja encapsulado emgzip
,bzip2
ou mesmo o novoxz
) ainda tão amplamente utilizada hoje em GNU / Linux, Android, BSD e outros tais sistemas operacionais UNIX, para o arquivo transferências, fonte do programa e downloads binários, e às vezes até como um formato de gerenciador de pacotes?
tar xvzf
é mais difícil do que7z -x
...tar xvzf
, os dados não compactados não serão gravados no disco rígido em.tar
formato! Você está certo que, se você executassegunzip blah.tar.gz
etar xf blah.tar
gravasse os dados no disco duas vezes (uma vez como .tar e novamente como arquivos no sistema de arquivos), mas ninguém realmente faz dessa maneira. Eletar xzf
usa um Pipe UNIX (basicamente uma cópia de memória) para transferir os dados não compactados degzip
(ou qualquer compressor) paratar
, para que os dados não sejam gravados no disco no.tar
formato.tar
(especialmente comprimido) comporta-se muito quando se trata de corrupção de dados. Dados pequena redundância / recuperação adicionadas por formatos modernos vale ouroRespostas:
Parte 1: Desempenho
Aqui está uma comparação de dois fluxos de trabalho separados e o que eles fazem.
Você tem um arquivo no disco
blah.tar.gz
com, por exemplo, 1 GB de dados compactados com gzip que, quando descompactados, ocupam 2 GB (portanto, uma taxa de compactação de 50%).A maneira como você criaria isso, se fosse para arquivamento e compactação separadamente, seria:
Isso resultaria em
blah.tar
uma mera agregação dafiles ...
forma não compactada.Então você faria
Isso lê o conteúdo
blah.tar
do disco, compacta-o através do algoritmo de compressão gzip, grava o conteúdo eblah.tar.gz
, em seguida, desvincula (exclui) o arquivoblah.tar
.Agora, vamos descomprimir!
Caminho 1
Você tem
blah.tar.gz
, de um jeito ou de outro.Você decide executar:
Isso vai
blah.tar.gz
.gzip
descompactador na memória.blah.tar
em disco e repita até que todos os dados compactados sejam lidos.blah.tar.gz
.Agora, você tem
blah.tar
no disco, que não é compactado, mas contém um ou mais arquivos, com sobrecarga de estrutura de dados muito baixa. O tamanho do arquivo é provavelmente alguns bytes maior que a soma de todos os dados do arquivo.Você corre:
Isso vai
blah.tar
e astar
estruturas de dados do formato de arquivo, incluindo informações sobre permissões de arquivos, nomes de arquivos, diretórios etc.O total de dados que lemos do disco nesse processo foi de 1 GB (para gunzip) + 2 GB (para tar) = 3 GB.
O total de dados que gravamos no disco nesse processo foi de 2 GB (para gunzip) + 2 GB (para tar) + alguns bytes para metadados = cerca de 4 GB.
Caminho 2
Você tem
blah.tar.gz
, de um jeito ou de outro.Você decide executar:
Isso vai
blah.tar.gz
na memória, um bloco de cada vez.gzip
descompactador na memória.tar
analisador de formato de arquivo, que lê as informações sobre metadados etc. e os dados do arquivo não compactado.tar
analisador de arquivos, ele grava os dados não compactados no disco, criando arquivos e diretórios e preenchendo-os com o conteúdo não compactado.O total de dados que lemos do disco nesse processo foi de 1 GB de dados compactados, ponto final.
O total de dados que gravamos no disco nesse processo foi de 2 GB de dados não compactados + alguns bytes para metadados = cerca de 2 GB.
Se você notar, a quantidade de disco I / O no Caminho 2 é idêntico ao disco I / O realizadas por, digamos, as
Zip
ou 7-Zip programas, ajuste para quaisquer diferenças na taxa de compressão.E se a taxa de compressão é sua preocupação, use o
Xz
compressor para encapsulartar
e você terá o arquivo TAR do LZMA2 , que é tão eficiente quanto o algoritmo mais avançado disponível para o 7-Zip :-)Parte 2: Recursos
tar
armazena permissões do Unix em seus metadados de arquivo e é muito conhecido e testado para compactar com êxito um diretório com todos os tipos de permissões diferentes, links simbólicos, etc. Há mais do que algumas instâncias em que é necessário enviar vários arquivos em um único arquivo ou fluxo, mas não necessariamente o compacta (embora a compactação seja útil e frequentemente usada).Parte 3: Compatibilidade
Muitas ferramentas são distribuídas na forma de origem ou binária como .tar.gz ou .tar.bz2, porque é um formato de arquivo com "menor denominador comum": assim como a maioria dos usuários do Windows tem acesso a descompactadores .zip ou .rar, a maioria das instalações do Linux , mesmo o mais básico, terá acesso a pelo menos tar e gunzip, não importando a idade ou o tamanho reduzido. Até os firmwares Android têm acesso a essas ferramentas.
Novos projetos voltados para o público que executa distribuições modernas podem muito bem distribuir em um formato mais moderno, como .tar.xz (usando o formato de compactação Xz (LZMA), que compacta melhor que gzip ou bzip2) ou .7z, que é semelhante a os formatos de arquivo ZIP ou RAR , na medida em que comprime e especifica um layout para encapsular vários arquivos em um único arquivo.
Você não vê o .7z usado com mais frequência pelo mesmo motivo que a música não é vendida em lojas de download online em novos formatos, como o Opus , ou vídeo no WebM . Compatibilidade com pessoas que executam sistemas antigos ou muito básicos.
fonte
tar
se encaixa no ecossistema de arquivamento (ou seja, para agregar arquivos, fornecendo um aumento de desempenho e alguns outros benefícios, como salvar permissões), mas não aborda por que alternativas modernas, comodar
não são usadas no local. Em outras palavras, esta resposta justifica o uso de agregadores de arquivos, mas não dotar
software em si.Isso foi respondido no Stack Overflow .
Muitas ferramentas são distribuídas na forma de origem ou binária como .tar.gz ou .tar.bz2, porque é um formato de arquivo com "menor denominador comum": assim como a maioria dos usuários do Windows tem acesso a descompactadores .zip ou .rar, a maioria das instalações do Linux , mesmo o mais básico, terá acesso a pelo menos
tar
egunzip
, não importa quantos anos ou menos. Até os firmwares Android têm acesso a essas ferramentas.Novos projetos direcionados ao público executando distribuições modernas podem muito bem distribuir em um formato mais moderno, como
.tar.xz
(usando o formato de compactação Xz ( LZMA ), que compacta melhor que gzip ou bzip2) ou .7z, que é semelhante ao ZIP ou RAR formatos de arquivo, pois comprime e especifica um layout para encapsular vários arquivos em um único arquivo.Você não vê o .7z usado com mais frequência pelo mesmo motivo que a música não é vendida em lojas de download online em novos formatos, como o Opus , ou vídeo no WebM . A compatibilidade com pessoas executando sistemas antigos ou muito básicos é importante.
fonte
tar.Z
(comprimir / descompactar). A progressão dos utilitários tem sido um fluxo constante (sem trocadilhos) de alterações e melhorias: Z => zip => gz => bz2 => 7z => xz (ou na ordem que você preferir). Quanto à função do tar, alguns utilitários descompactam apenas e ainda exigem que o tar agrupe hierarquias de arquivos.O Tar possui um rico conjunto de operações e modificadores que sabem tudo sobre os sistemas de arquivos Unix. Ele conhece as permissões do Unix, os diferentes horários associados aos arquivos, os hard links, os softlinks (e a possibilidade de os links simbólicos introduzirem ciclos no gráfico do sistema de arquivos) e permite especificar várias maneiras diferentes de gerenciar todos esses dados. .
Deseja que os dados extraídos preservem os tempos de acesso ao arquivo? Tar pode fazer isso. Para preservar permissões? Tar pode fazer isso.
Deseja preservar links simbólicos como links simbólicos? O Tar faz isso por padrão. Deseja copiar o destino? Tar pode fazer isso.
Deseja ter certeza de que os dados com link físico são armazenados apenas uma vez (ou seja, para fazer a coisa certa)? Tar faz isso.
Deseja lidar bem com arquivos esparsos? Tar pode fazer isso.
Deseja dados não compactados (por quê?)? Tar pode fazer isso. Para comprimir com gzip? Tar pode fazer isso. Com bzip2? Tar pode fazer isso. Com programas de compressão externos arbitrários? Tar pode fazer isso.
Deseja gravar ou recuperar de / para um dispositivo bruto? O formato do Tar lida com isso.
Deseja adicionar arquivos a um arquivo existente? Tar pode fazer isso. Para diferenciar dois arquivos para ver o que mudou? Tar pode fazer isso. Para atualizar apenas as partes do arquivo que foram alteradas? Tar pode fazer isso.
Deseja ter certeza de que não arquiva em mais de um sistema de arquivos? Tar pode fazer isso.
Deseja pegar apenas os arquivos mais recentes que o seu último backup? Tar pode fazer isso.
Deseja preservar nomes ou números de usuários e grupos? Tar pode fazer qualquer um.
Você precisa preservar os nós do dispositivo (como os arquivos
/dev
) para que, após a extração, o sistema funcione corretamente? Tar pode fazer isso.Tar vem evoluindo para lidar com muitos casos de uso há décadas e realmente sabe muito sobre o que as pessoas querem fazer com os sistemas de arquivos Unix.
fonte
f -
e encaminhá-lo ao compressor.tar
muito frequentemente para copiar uma árvore do sistema de arquivos de um lugar para outro e preservar permissões etc., e a compactação nesse caso requer apenas ciclos extras da CPU. Por exemplotar cf - * | tar xf - -C /somewhere
.Você confunde os dois processos distintos de arquivamento e compactação .
Razões para usar um arquivador
Um motivo para usar o arquivamento sem compactação é, por exemplo, se um monte de arquivos é copiado de um host para outro. Um comando como o seguinte
pode acelerar as coisas consideravelmente. Se eu souber que os arquivos não podem ser compactados ou se o SSH estiver configurado com compactação, poderá economizar um tempo considerável da CPU. Certamente, pode-se usar uma ferramenta de compactação mais moderna com uma função de arquivamento e desativar a compactação. A vantagem
tar
é que posso esperar que esteja disponível em todos os sistemas.Razões para usar um arquivador com compressão gzip
Uma razão que eu uso
tar
comgzip
é: velocidade! Se eu quiser transferir alguns GiB de arquivos de texto de um lugar para outro, não me importo em extrair os últimos bytes, pois a compactação é usada apenas para trânsito, não para armazenamento a longo prazo. Nesses casos, eu usogzip
, o que não maximiza a CPU (em contraste com o 7-Zip , por exemplo), o que significa que estou ligado à E / S novamente e não à CPU. E novamente:gzip
pode ser considerado disponível em qualquer lugar.Razões para usar
tar
em favor descp
,rsync
, etc.É excelente
scp
se você tiver muitos arquivos pequenos para copiar (por exemplo, diretórios de correio com centenas de milhares de arquivos).rsync
, por incrível que seja, pode não estar disponível em qualquer lugar. Além disso,rsync
apenas compensa se parte dos arquivos - ou uma versão mais antiga - já estiver presente no destino. A cópia inicialtar
é a mais rápida, com ou sem compactação, dependendo dos dados reais.fonte
tar cf - . | (cd ~/somewhere; tar xvf -)
. É realmente útil não ter que esperar até que o índice central seja gravado (como, por exemplo, em um arquivo zip).Adicionando as outras boas respostas aqui, prefiro a combinação
tar
+gzip|bzip2|xz
principalmente porque esses arquivos compactados são como fluxos e você pode canalizá-los facilmente.Preciso descompactar um arquivo disponível na internet. Com um
zip
ou outrorar
formato, preciso baixá-lo primeiro e depois descompactá-lo. Comtar.{gz,bz2,xz}
eu posso baixar e descompactar na mesma etapa, sem a necessidade de ter o arquivo compactado fisicamente em disco:Isso deixará apenas os arquivos descompactados no meu disco e acelerará todo o processo, porque não tenho tempo para baixar primeiro o arquivo inteiro e, após o término do download, descompacte-o. Em vez disso, estou descompactando-o durante o download. Você não pode fazer isso com
zip
ourar
arquivos.fonte
funzip
apenas extrai o primeiro arquivo no arquivo zip, não todos.tar zc /some/folder | ssh user@host "cd /other/folder && tar zx"
Existem várias razões para se manter no Tar (GNU).
Isto é:
Se a sua carne em particular é a necessidade de "descomprimir" um tarball antes de poder ler o conteúdo, provavelmente você está certo. WinRAR e 7-Zip fazem isso automaticamente. No entanto, existem soluções simples para esse problema, como documentar o conteúdo de um arquivo morto de forma descompactada.
fonte
Formatos de arquivo como .zip requerem que o software leia primeiro o final do arquivo, leia um catálogo de nomes de arquivos. Por outro lado, o tar armazena essas informações no fluxo compactado.
A vantagem da maneira tar é que você pode descompactar dados enquanto os lê de um tubo não procurável, como um soquete de rede.
A vantagem da maneira zip é que, para um arquivo estático no disco, você pode navegar pelo conteúdo e pelos metadados sem descomprimir o arquivo inteiro primeiro.
Ambos têm seus usos, dependendo do que você está fazendo.
fonte
Parece haver alguma relutância em responder todas as suas perguntas diretamente, com uma aparente preferência em usá-la como um ponto de partida para a pontificação. Então eu vou tentar.
Não. De fato, como tar e gzip são geralmente dois processos, você ainda recebe uma pequena vantagem de velocidade de vários núcleos que um arquivador como o zip do Info-ZIP não fornece. Em termos de taxa de compactação, tar + gzip geralmente se saem melhor do que zip com deflate, pois o primeiro pode se beneficiar da correlação entre arquivos, enquanto o último compacta os arquivos separadamente. Esse benefício de compactação se traduz em um benefício de velocidade na extração, pois um arquivo compactado descompacta em menos tempo.
Sim, o tar foi projetado para o Unix e evoluiu ao longo dos anos para ser capaz de registrar e restaurar exatamente cada cantinho dos sistemas de arquivos Unix, até mesmo o sistema de arquivos Mac OS X Unix mais exigente e irritante. O zip pode reter grande parte dos metadados, como permissões, horários, proprietários, grupos e links simbólicos, mas ainda não tudo. Como exemplo, nem o zip nem o 7z podem reconhecer ou tirar proveito de arquivos esparsos, nem têm conhecimento ou são capazes de restaurar links físicos.
Muitas outras boas respostas aqui para isso. O melhor é que ele funciona e você pode continuar atualizando-o para melhores formatos de compactação (por exemplo, xz) e ainda usar o mesmo formato tar e até o mesmo utilitário tar compilado. Se você quiser apenas empacotar um monte de coisas e depois descompactar tudo do outro lado, há poucas razões para usar qualquer coisa, exceto um dos mais antigos, mais completos e mais depurados softwares existentes.
Se você deseja acesso aleatório, atualizações parciais ou outras coisas que precisam lidar com o conteúdo aos poucos, ou deseja descobrir o que está nele sem ler a coisa toda, use um formato diferente.
fonte
atuação
A grande diferença é a ordem em que a compactação e o arquivamento são feitos nos
tar
arquivos . , Então, opcionalmente, é possível enviar o arquivo para um compressor,zip
construir o arquivo e compactar os dados do arquivo em pedaços de 32 KB, à medida que são inseridos no arquivo. Ao dividir os dados do arquivo em pequenos pedaços e compactá-los separadamente, ele permite extrair arquivos ou partes de arquivos específicos sem ter que descomprimir tudo no arquivo antes dele. Também evita que o compressor construa um dicionário muito grande antes de ser reiniciado. Isso significa que a compactação será mais rápida, mas não fornecerá uma proporção tão boa quanto compactar tudo com um tamanho de dicionário maior.Você pode visualizá-lo pensando em dois arquivos, onde os primeiros 500 bytes do segundo arquivo são os mesmos que os últimos 500 bytes do primeiro arquivo. Com o
zip
método, o compressor é reiniciado para o segundo arquivo; portanto, não se lembra que o primeiro arquivo terminou nos mesmos dados; portanto, não é possível remover os dados duplicados do segundo arquivo.Popularidade
Existem muitos outros formatos com várias vantagens
tar
. O 7-Zip não armazena permissões de arquivo Unix, mas armazenadar
ezip
pode e os três armazenam um índice, o que permite uma navegação rápida, extração de um subconjunto de arquivos e atualização de arquivos dentro do arquivo morto. Eles também podem usar CPUs multi-core para compactação.O motivo pelo qual todos ainda usam
tar
é o mesmo pelo qual todos ainda usam o Windows e o Flash : as pessoas não gostam de mudanças. Sem uma forte razão para mudar, as pessoas seguem o que sabem.dar
não oferece um benefício suficiente para justificar a publicação de arquivos no formato quando a maioria das pessoas játar
instalou, e muito poucas sabemdar
, portanto, a inércia simples mantém o padrão antigo.fonte
O Tar foi criado para fazer backups de fidelidade total do seu sistema de arquivos, não apenas para transferir arquivos. Como tal, o utilitário tar é o utilitário mais completo para criar um arquivo que preserva tudo o que é importante na estrutura do sistema de arquivos.
Isso inclui todos esses recursos que estão faltando em uma ou mais ferramentas concorrentes:
Ele também tem a
--one-file-system
opção que é extraordinariamente útil ao fazer backups.Sempre que um novo recurso é adicionado aos sistemas de arquivos, o suporte é adicionado
tar
primeiro (ou mesmo exclusivamente). Portanto, continua sendo a maneira mais compatível de salvar arquivos.fonte
Hoje temos muitos arquivos compactados circulando hoje em dia, MP3s, JPGs, vídeos, arquivos tar.gz, pacotes JAR, RPMs, DEBs e assim por diante. Se você precisar agrupar vários deles em um único arquivo para transferência, é útil ter um utilitário 'tar' que apenas agrupa os arquivos sem tentar compactá-los.
Não apenas perde tempo e eletricidade para tentar compactar um arquivo compactado, mas também resulta em um arquivo maior que o original.
Outro uso é melhorar as taxas de compactação. Por exemplo, se você 'tar' um pacote de arquivos de log e depois compactar o resultado, provavelmente criará um arquivo menor do que se compactasse primeiro e depois empacotará 'tar'. E, é claro, usando o tar, você pode escolher qualquer algoritmo de compactação que desejar e especificar opções para otimizar a compactação para seu caso de uso específico.
Acho que o tar 'é muito relevante hoje e prefiro usar ZIP. Em nosso escritório, todos os usuários do Windows possuem o 7-zip instalado. Portanto, para nós, os arquivos tar são totalmente compatíveis com várias plataformas.
fonte
tar
arquivos descompactados e há uma razão para isso.tar
usa pedaços muito grandes, o que significa que você recebe muitos preenchimentos no final dos arquivos. Para se livrar de todos esses zeros, quase sempre vale a pena usar apenasgzip
sem pensar duas vezes.Talvez devêssemos nos perguntar por que esses "novos" formatos de arquivo que executam compactação e agregação (e eu acrescentaria criptografia) não foram criados no tar desde o início, em vez de ferramentas completamente diferentes.
Pelo que entendi, existem razões históricas (relacionadas ao histórico do SO, "proteção" de patentes, capacidade do fornecedor de software de vender ferramentas etc.).
Agora, como outra resposta apontou, ainda hoje o alcatrão não é claramente inferior a outras soluções e pode ser melhor em outros aspectos, como capacidade de trabalhar em fluxos ou gerenciamento de direitos Unix.
Se você ler o artigo da Wikipedia sobre alcatrão, poderá ver outro fato interessante. O artigo reconhece algumas deficiências do alcatrão ... mas não sugere o uso de zip (o formato zip realmente não resolve essas deficiências), mas o DAR.
Terminarei com um toque pessoal. Algumas vezes atrás, tive que criar um formato de arquivo para armazenar dados criptografados. Usar o tar como base foi útil (outros fizeram a mesma escolha, por exemplo, tar é o formato de agregação interno para pacotes .deb). Era óbvio para mim que tentar compactar dados após a criptografia era totalmente inútil, eu tinha que executar a compactação como uma etapa independente antes da criptografia e também não estava pronto para usar a criptografia zip (eu queria duas criptografias com chaves pública e privada) . Usando o alcatrão, funcionou como uma brisa.
fonte
Estou surpreso que ninguém tenha mencionado isso, mas uma das razões - não é realmente uma vantagem, mas uma necessidade - é a compatibilidade com versões anteriores. Há muitos sistemas executando software há décadas que podem exigir
tar
arquivamento. Não é rentável contratar alguém para "consertar" todos os sistemas antigos.fonte
tar é UNIX como UNIX é tar
Na minha opinião, o motivo de ainda usar
tar
hoje é que é um dos casos (provavelmente raros) em que a abordagem UNIX a tornou perfeitamente correta desde o início.Examinando mais de perto os estágios envolvidos na criação de arquivos, espero que você concorde que a maneira como a separação de tarefas diferentes ocorre aqui é a filosofia do UNIX da melhor forma possível:
uma ferramenta (
tar
para dar um nome aqui) especializada na transformação de qualquer seleção de arquivos, diretórios e links simbólicos, incluindo todos os metadados relevantes, como registros de data e hora, proprietários e permissões em um fluxo de bytes.e apenas outra ferramenta arbitrariamente intercambiável (
gzip
bz2
xz
para citar apenas algumas opções) que transforma qualquer fluxo de entrada de bytes em outro (espero) menor fluxo de saída.O uso dessa abordagem e oferece vários benefícios ao usuário e ao desenvolvedor:
extensibilidade Permitindo a par
tar
com qualquer algoritmo de compressão já existente ou qualquer algoritmo de compressão, mas ainda a ser desenvolvido sem ter que mudar alguma coisa sobre o funcionamento interno detar
em tudo.Assim que a nova ferramenta de compressão "hyper-zip-utra" ou whater for lançada, você já estará pronto para usá-la, abraçando seu novo servidor com todo o poder de
tar
.a estabilidade
tar
tem sido muito utilizada desde o início dos anos 80, testada e operada em inúmeros sistemas operacionais e máquinas.Impedir a necessidade de reinventar a roda na implementação de propriedade de armazenamento, permissões, carimbos de data e hora e assim por diante para cada nova ferramenta de arquivamento não apenas economiza muito tempo (de outra forma desnecessariamente gasto) no desenvolvimento, mas também garante a mesma confiabilidade para cada nova aplicação.
consistência A interface do usuário permanece a mesma o tempo todo.
Não há necessidade de lembrar que para restaurar as permissões usando a ferramenta A, você precisa passar a opção
--i-hope-you-rember-this-one
e, usando a ferramenta B, a--this-time-its-another-one
ferramenta C é `- - espero que você não tente usar a ferramenta como opção.Considerando que, ao utilizar a ferramenta D, você realmente teria estragado tudo se não usasse
--if-you-had-used-tool-bs-switch-your-files-would-have-been-deleted-now
.fonte
Muitas respostas boas, mas todas negligenciam um fato importante. O Tar possui um ecossistema bem estabelecido de usuários e desenvolvedores no mundo semelhante ao Unix. Isso mantém o ritmo, assim como o ZIP é mantido pelo ecossistema DOS / Windows. Ter esse ecossistema é o que sustenta uma tecnologia, não suas vantagens técnicas.
fonte
A razão é "entrincheiramento na cultura". Existem inúmeras pessoas como eu, cujos olhos ficam vidrados se for solicitado que processem algo além de um arquivo compactado de alcatrão ou o ZIP ocasional, se vier do mundo do Windows.
Eu não quero ouvir sobre o 7-Zip, RAR ou qualquer outra coisa. Se eu tiver que instalar um programa para descompactar seu arquivo, isso é trabalho. Farei isso se resultar em meu pagamento ou se o conteúdo é algo que "devo ter" e não está disponível de nenhuma outra maneira.
Uma vantagem do alcatrão é que, se você enviar um tarball para alguém, ele será instantaneamente reconhecido. O destinatário pode digitar os comandos de extração usando memória muscular.
A verdadeira questão é: por que algumas pessoas estão tão obcecadas em economizar mais um byte de espaço que pedem a todos que percam tempo instalando algum utilitário exótico e aprendendo a usá-lo? E há os usos estúpidos de formatos exóticos de compressão e arquivo. Um vídeo H.264 com som AAC realmente precisa ser inserido no RAR de várias partes?
O formato tar pode ser antigo, mas armazena tudo o que é relevante: conteúdo do arquivo, caminhos, registros de data e hora, permissões e propriedades. Ele armazena não apenas links simbólicos, mas pode preservar a estrutura do link físico. Ele armazena arquivos especiais também, para que um arquivo de fita possa ser usado para coisas como um
/dev
diretório secundário usado durante a inicialização. Você pode montar uma distribuição Linux cujo formato de pacote binário não consiste em nada, mas em tarballs descompactados em relação à raiz do sistema de arquivos.fonte
Respondendo diretamente às perguntas específicas que você fez:
Há uma melhoria específica de desempenho, em casos gerais, usando
tar
especialmente com a biblioteca de compactação incorporada (as linhas de comandotar xvzf
outar xvjf
style, em que uma biblioteca de compactação é usada em vez de um segundo processo). Isso vem de duas causas principais:ao processar um grande número de arquivos relativamente pequenos, especialmente aqueles comumente usados na distribuição de software, há alta redundância. A compactação em muitos arquivos resulta em uma compactação geral mais alta do que na compactação de arquivos individuais. E o "dicionário" é calculado uma vez para cada parte da entrada, não para cada arquivo.
tar
entende sistemas de arquivos. Ele foi projetado para salvar e restaurar um sistema operacional funcional / viável. Ele capta profundamente exatamente o que é importante em um sistema de arquivos UNIX e captura e restaura fielmente isso. Outras ferramentas ... nem sempre, especialmente a família zip, que é melhor projetada para compartilhar arquivos entre uma família de sistemas operacionais, em que o documento é importante, e não uma cópia fiel do sistema operacional.Manipulação de arquivos esparsos. Algumas das bibliotecas diretas de banco de dados dependem de arquivos esparsos - arquivos em que os dados são nominalmente GB, mas os dados reais gravados e armazenados são muito, muito menos, e apenas alguns blocos de disco são realmente usados. Se você usar uma ferramenta inconsciente, ao descomprimir, você terá um consumo massivo de blocos de disco, todos contendo zeros. Transformar isso de volta em um arquivo esparso é ... doloroso. Se você ainda tem espaço para fazê-lo. Você precisa de uma ferramenta que capte o que é um arquivo esparso e respeite isso.
Metadados. O Unix evoluiu algumas coisas estranhas ao longo dos anos. Nomes de arquivos de 14 caracteres, nomes de arquivos longos, links sym links, bits fixos, bits de superusuário, permissões de acesso de grupo herdadas, etc. Tar os compreende e os reproduz. Ferramentas de compartilhamento de arquivos ... nem tanto. Muitas pessoas não usam os links da maneira que poderiam ... Se você já trabalhou com software que usa links e depois usou uma ferramenta inconsciente para fazer backup e restaurar, agora você tem várias funções independentes. arquivos, em vez de um único arquivo com muitos nomes. Dor. Seu software falha e você tem um inchaço no disco.
tar
trabalho. Ele faz o trabalho para o qual foi projetado, também. Houve outras substituições elogiado (cpio
,pax
, etc, etc). Mas o tar é instalado em praticamente tudo, e as bibliotecas de compactação que ele usa também são muito comuns por outros motivos. Nada mais apareceu além do que o alcatrão faz. Sem vantagens claras e muito uso e conhecimento incorporados na comunidade, não haverá substituição. O alcatrão teve muito uso ao longo dos anos. Se recebermos grandes mudanças na maneira como pensamos em sistemas de arquivos, ou arquivos sem texto se tornarem o caminho para a transferência de código (atualmente não é possível imaginar como, mas ignorar isso ...), você poderá encontrar outra ferramenta. Mas esse não seria o tipo de sistema operacional que usamos agora. Seria algo diferente, organizado de forma diferente e precisaria de suas próprias ferramentas.A pergunta mais importante, eu acho, que você não perguntou, é para qual emprego o 'tar' é inadequado.
tar
com compressão é frágil. Você precisa de todo o arquivo, pouco a pouco. Na minha experiência, não é resiliente. Eu tive erros de bit único, resultando em arquivos com várias partes se tornando inutilizáveis. Não introduz redundância para se proteger contra erros (o que anularia uma das perguntas que você fez sobre compactação de dados). Se houver uma possibilidade de corrupção de dados, você deseja verificar erros com redundância para poder reconstruir os dados. Isso significa, por definição, que você não está maximamente compactado. Você não pode ter todos os dados exigidos e carregar seu valor máximo de significado (compactação máxima) e ter todos os dados capazes de perda e recuperação (redundância e correção de erros). Então ... qual é o objetivo do seu arquivo?tar
é excelente em ambientes de alta confiabilidade e quando o arquivo pode ser reproduzido da fonte novamente. IME, na verdade é pior na coisa original que seus nomes sugerem - arquivamento em fita. Erros de bit único em uma fita (ou pior, erros de bit único em uma cabeça de fita, em que você perde um bit em cada byte de uma fita ou arquivo inteiro) resultam na inutilização dos dados. Com redundância suficiente e detecção e correção de erros, você pode sobreviver a qualquer um desses problemas.Então ... quanto barulho e corrupção há no ambiente que você está vendo, e a fonte pode ser usada para regenerar um arquivo com falha? A resposta, a partir das pistas que você forneceu, é que o sistema não é barulhento e que a fonte é capaz de regenerar um arquivo morto. Nesse caso,
tar
é adequado.tar
com compactação também não funciona bem com arquivos pré-compactados. Se você estiver enviando dados já compactados ... use tar, e não se incomode com o estágio de compactação - ele adiciona ciclos de CPU para não fazer muito. Isso significa que você precisa saber o que está enviando e por quê. Se você se importa. Se você não se importa com esses casos especiais, o tar copiará fielmente os dados e a compactação falhará fielmente em fazer muito útil para reduzi-los. Não há grande problema, exceto alguns ciclos de CPU.fonte
TAR é Tape Archive. Ele existe há décadas e é amplamente usado e suportado. É um produto maduro e atende às necessidades atuais e legadas.
fonte