gzip sem tar? Por que eles são usados juntos?

55

Por que tar e gzip quase sempre usados juntos, e não apenas gzip? Existe alguma vantagem para esse método?

    
por Mehrdad 02.03.2011 / 04:40

5 respostas

68

TAR cria um único arquivo de muitos arquivos, mas não os compacta.

Detalhes do formato

A tar file is the concatenation of one or more files. Each file is preceded by a 512-byte header record. The file data is written unaltered except that its length is rounded up to a multiple of 512 bytes and the extra space is zero filled. The end of an archive is marked by at least two consecutive zero-filled records.

O GZIP compacta um único arquivo em outro arquivo único, mas não cria arquivos.

Formato de arquivo

...Although its file format also allows for multiple such streams to be concatenated (zipped files are simply decompressed concatenated as if they were originally one file), gzip is normally used to compress just single files.[4] Compressed archives are typically created by assembling collections of files into a single tar archive, and then compressing that archive with gzip.

    
por 02.03.2011 / 04:43
15

Gzip / Bzip2 são compressores de fluxo. Eles compactam um fluxo de dados em algo menor. Eles podem ser usados em arquivos individuais, mas não em grupos de arquivos por conta própria.

Por outro lado, o Tar tem a capacidade de transformar uma lista de arquivos, com caminhos, permissões e informações de propriedade, em um único fluxo contínuo - e vice-versa.

É por isso que, para arquivar arquivos (e também se é necessário compactar), geralmente é usado o método de compactação + tar.

    
por 02.03.2011 / 04:43
11

Tar é responsável por fazer uma e apenas uma coisa bem: (des) arquivar em (fora de) um único arquivo. Sobre o que? De uma e apenas uma coisa: um conjunto de arquivos.

O Gzip é responsável por fazer uma e apenas uma coisa bem: (des) compactando. Sobre o que? De uma coisa e uma coisa só: um único arquivo de qualquer tipo ... e isso inclui um arquivo criado com tar.

Volta-se à filosofia de pipelining do UNIX, a arquitetura subjacente "pipe and filters"; o tratamento de tudo como um arquivo e a meta arquitetônica sonora de "uma-coisa-faz-uma-coisa-só-e-faz-bem" (o que resulta em uma espécie de plug-and-play muito elegante e simples .)

Em sua simplicidade, é quase de natureza algébrica (um grande objetivo no projeto de sistemas). E isso não é tarefa fácil.

De muitas maneiras (e não sem suas falhas), isso é quase um auge em composibilidade, modularidade, baixo acoplamento e alta coesão. Se você entender esses quatro (e eu quero dizer que realmente entenda ), você entende, será óbvio porque o tar e o gzip funcionam assim em pares.

    
por 02.03.2011 / 12:09
8

Primeiro, o TAR não foi criado para criar arquivos arquivo . É o Tape ARchiver . O trabalho é escrever ou carregar em um arquivo de / para fita.

A opção -f faz com que ela use um arquivo como "fita virtual", que pode ser compactada por outro programa. De fato, essa compressão também acontece em fitas reais.

Naturalmente, a filosofia de usar um programa para fazê-lo bem também conta neste caso, mas pode-se perder porque os arquivos TAR são estruturados como um fluxo em vez de um diretório de conteúdo + conteúdo.

    
por 02.03.2011 / 18:56
5

Tradicionalmente, os sistemas Unix usavam um programa para realizar uma tarefa de acordo com a filosofia Unix : tar era apenas um meio de empacotar vários arquivos em um único arquivo, originalmente para backup em fita (portanto tar , t ape ar cebolinha). tar não fornece compactação; o arquivo descompactado resultante é normalmente compactado com algum outro programa como gzip , bzip2 ou xz . Antigamente, eles usavam o comando compress para fazer isso; algoritmos de compressão mais recentes são muito mais eficazes do que isso.

A abordagem altamente modularizada ditada pela filosofia Unix significa que cada programa pode ser usado individualmente, conforme apropriado, ou combinado para executar tarefas mais complexas, incluindo a criação de arquivos compactados, conforme descrito aqui. Para esses tipos de tarefas, também facilita a troca de ferramentas individuais conforme necessário; você apenas alteraria o programa de compactação para usar um algoritmo de compactação diferente, sem precisar substituir o utilitário tar em si.

Esta abordagem modular não é isenta de desvantagens. Como mencionado em comentários para outras respostas, um formato de arquivo compactado dedicado como .zip é mais capaz de lidar com a extração de arquivos individuais; tarballs compactados precisam ser descompactados quase na íntegra para extrair arquivos perto do final do arquivo, enquanto .zip archives permite acesso aleatório ao seu conteúdo. (Alguns formatos mais recentes, como .7z , suportam arquivos sólidos e não sólidos, bem como blocos sólidos de vários tamanho em arquivos maiores.) O uso contínuo de tar em conjunto com um utilitário de compressão separado é uma questão de tradição e compatibilidade; também, .7z e .zip não suportam metadados do sistema de arquivos Unix, como permissões.

    
por 28.05.2016 / 20:23

Tags