fbpx

Comandos Linux – Comando gzip

Comandos Linux gzip, gunzip e zcat

comando gzip

Em sistemas operacionais do tipo Unix, o comando gzip cria, lista, modifica e extrai dados dos arquivos GZIP .

O comando gunzip extrai dados dos arquivos GZIP.

O comando zcat imprime o conteúdo dos arquivos GZIP.

Descrição

Gzip reduz o tamanho dos arquivos nomeados usando a codificação Lempel – Ziv (LZ77). Sempre que possível, cada arquivo é substituído por um com a extensão .gz , mantendo os mesmos modos de propriedade , acesso e tempos de modificação. (A extensão padrão é -gz para VMS , z para MSDOS , OS / 2 FAT , Windows NT FAT e Atari .) Se nenhum arquivo for especificado ou se o nome de um arquivo for ”  “, a entrada padrão será compactada para o padrão saída . O gzip tentará apenas compactar arquivos regulares. Em particular, ele ignora links simbólicos .

Se o nome do arquivo compactado for muito longo para o sistema de arquivos , o gzip o truncará . O gzip tenta truncar apenas as partes do nome do arquivo com mais de 3 caracteres . (Uma parte é delimitada por pontos.) Se o nome consistir apenas em partes pequenas, as partes mais longas serão truncadas. Por exemplo, se os nomes de arquivo estiverem limitados a 14 caracteres, o gzip.msdos.exe será compactado para gzi.msd.exe.gz. Os nomes não são truncados em sistemas que não têm um limite no tamanho do nome do arquivo.

Por padrão, o gzip mantém o nome do arquivo original e o carimbo de data e hora no arquivo compactado. Eles são usados ​​ao descompactar o arquivo com a opção -N . Isso é útil quando o nome do arquivo compactado foi truncado ou quando o registro de data e hora não foi preservado após a transferência do arquivo .

Os arquivos compactados podem ser restaurados para sua forma original usando gzip -d ou gunzip ou zcat . Se o nome original salvo no arquivo compactado não for adequado para seu sistema de arquivos, um novo nome será construído a partir do original para torná-lo legal.

gunzip pega uma lista de arquivos em sua linha de comando e substitui cada arquivo cujo nome termina com .gz , -gz , .z , -z ou _z ( caso de ignorância) e que começa com o número mágico correto com um arquivo descompactado sem a opção extensão original. O gunzip também reconhece as extensões especiais .tgz e .taz como atalhos para .tar.gz e .tar.Z, respectivamente. Ao compactar, o gzip usa a extensão .tgz, se necessário, em vez de truncar um arquivo com uma extensão .tar .

Atualmente, o gunzip pode descomprimir arquivos criados por gzip , zip , compactar , compactar -H ou pacote . A detecção do formato de entrada é automática. Ao usar os dois primeiros formatos, o gunzip verifica um CRC de 32 bits . No pacote , o gunzip verifica o comprimento não compactado. O formato de compactação padrão não foi projetado para permitir verificações de consistência. No entanto, o gunzip às vezes é capaz de detectar um arquivo .Z ruim. Se você receber um erro ao descompactar um arquivo .Z , não presuma que o arquivo .Z esteja correto porque a descompactação padrão não se queixa. Isso geralmente significa que a descompactação padrão não verifica sua entrada e gera felizmente a saída de lixo. O formato SCH compress -H (método de compressão lzh ) não inclui um CRC, mas também permite algumas verificações de consistência.

Os arquivos criados por zip podem ser descompactados pelo gzip apenas se eles tiverem um único membro compactado com o método ‘deflation’. Este recurso destina-se apenas a ajudar na conversão de arquivos tar.zip para o formato tar.gz. Para extrair um arquivo zip com um único membro, use um comando como gunzip <foo.zip ou gunzip -S .zip foo.zip . Para extrair arquivos zip com vários membros, use descompactar em vez de gunzip .

O zcat é idêntico ao gunzip -c . (Em alguns sistemas, o zcat pode ser instalado como gzcat para preservar o link original para compactar .) O zcat descompacta uma lista de arquivos na linha de comandos ou em sua entrada padrão e grava os dados não compactados na saída padrão. O zcat descompactará arquivos com o número mágico correto, independentemente de terem ou não um sufixo .gz .

O gzip usa o algoritmo Lempel-Ziv usado no zip e no PKZIP . A quantidade de compressão obtida depende do tamanho da entrada e da distribuição de substrings comuns. Normalmente, textos como código fonte ou inglês são reduzidos de 60 a 70%. A compactação geralmente é muito melhor do que a alcançada pelo LZW (como usado na compressa ), pela codificação Huffman (como usada na embalagem ) ou pela codificação adaptativa Huffman ( compacta ).

A compactação é sempre realizada, mesmo se o arquivo compactado for um pouco maior que o original. O pior caso de expansão é de alguns bytes para o cabeçalho do arquivo gzip , mais 5 bytes a cada bloco de 32 K ou uma taxa de expansão de 0,015% para arquivos grandes. Observe que o número real de blocos de disco usados ​​quase nunca aumenta e o gzip preserva o modo, a propriedade e os carimbos de data e hora dos arquivos ao compactar ou descompactar.

O formato de arquivo gzip é especificado em P. Deutsch, versão 4.3 da especificação de formato de arquivo GZIP , https://www.ietf.org/rfc/rfc1952.txt , Internet RFC 1952 (maio de 1996 ). O formato de deflação do zip está especificado em P. Deutsch, DEFLATE Compressed Data Format Specification versão 1.3 , https://www.ietf.org/rfc/rfc1951.txt , Internet RFC 1951 (maio de 1996).

Sintaxe

  gzip [-acdfhlLnNrtvV19] [ sufixo -S] [ nome ...]
  gunzip [-acfhlLnNrtvV] [-S sufixo] [ nome ...]
  zcat [-fhLV] [nome ...]

Opções

-a –asciiModo de texto ascii : converta o fim de linhas usando convenções locais. Esta opção é suportada apenas em alguns sistemas não Unix. Para MSDOS, o CR LF é convertido em LF ao compactar, e LF é convertido em CR LF ao descompactar.
-c –stdout –to-stdoutGrava a saída na saída padrão; mantenha os arquivos originais inalterados. Se houver vários arquivos de entrada, a saída consistirá em uma sequência de membros compactados independentemente. Para obter uma melhor compactação, concatene todos os arquivos de entrada antes de compactá-los.
-d –dcompress –uncompressDescomprimir.
-f –forceForça a compactação ou descompactação, mesmo se o arquivo tiver vários links ou o arquivo correspondente já existir, ou se os dados compactados forem lidos ou gravados em um terminal . Se os dados de entrada não estiverem em um formato reconhecido pelo gzip , e se a opção –stdout também for fornecida, copie os dados de entrada sem alterar a saída padrão: deixe o zcat se comportar como gato . Se -f não for fornecido, e quando não estiver em execução em segundo plano, o gzip solicitará que verifique se um arquivo existente deve ser substituído .
-h –helpExiba uma tela de ajuda e saia.
-l –listPara cada arquivo compactado, liste os seguintes campos:

tamanho compactado: tamanho do arquivo compactado;

tamanho descompactado: tamanho do arquivo descompactado;

razão: taxa de compressão (0,0% se desconhecido);

nome não compactado: nome do arquivo não compactado.

O tamanho não compactado é fornecido como -1 para arquivos que não estão no formato gzip , como arquivos .Z compactados. Para obter o tamanho descompactado para esse arquivo, você pode usar:

arquivo zcat.Z | wc -c

Em combinação com a opção –verbose , os seguintes campos também são exibidos:

método: método de compressão;

crc: o CRC de 32 bits dos dados não compactados;

data e hora: registro de data e hora para o arquivo descompactado.

Os métodos de compactação atualmente suportados são deflate , compress , lzh ( SCO compress -H ) e pack . O crc é fornecido como ffffffff para um arquivo que não está no formato gzip.

Com –name , o nome descompactado, a data e a hora são aqueles armazenados no arquivo compactado, se presente.

Com –verbose , o total de tamanhos e a taxa de compactação de todos os arquivos também são exibidos, a menos que alguns tamanhos sejam desconhecidos. Com –quiet , o título e as linhas de totais não são exibidos.

-L –licenseExiba a licença gzip e saia.
-n – sem nomeAo compactar, não salve o nome do arquivo original e o carimbo de data / hora por padrão. (O nome original é sempre salvo se o nome tiver que ser truncado .) Ao descompactar, não restaure o nome do arquivo original se presente (remova apenas o sufixo gzip do nome do arquivo compactado) e não restaure o carimbo de data / hora original, se presente (copie-o do arquivo compactado). Esta opção é o padrão ao descompactar.
-N –nameAo compactar, sempre salve o nome do arquivo original e a data e hora; esse é o padrão. Ao descompactar, restaure o nome do arquivo original e o carimbo de hora, se houver. Essa opção é útil em sistemas que têm um limite no tamanho do nome do arquivo ou quando o registro de data e hora foi perdido após a transferência do arquivo.
-q –quietSuprima todos os avisos.
-r –recursivoViaje pela estrutura de diretórios recursivamente . Se qualquer um dos nomes de arquivo especificados na linha de comando forem diretórios, o gzip descerá para o diretório e compactará todos os arquivos que encontrar lá (ou descompactá-los no caso do gunzip ).
-S .suf –suffix .sufAo compactar, use o sufixo .suf em vez de .gz . Qualquer sufixo não vazio pode ser fornecido, mas sufixos diferentes de .z e .gz devem ser evitados para evitar confusão quando os arquivos são transferidos para outros sistemas. Ao descompactar, inclua .suf no início da lista de sufixos a tentar, ao derivar um nome de arquivo de saída de um nome de arquivo de entrada.
-t –testTeste. Verifique a integridade do arquivo compactado.
-v –verboseVerbose. Exibe o nome e a porcentagem de redução para cada arquivo compactado ou descompactado.
-V –versionVersão. Exiba o número da versão e as opções de compilação e saia.
– # –fast –melhorRegule a velocidade da compactação usando o dígito especificado # , onde (por exemplo) -1 ou –fast indica o método de compactação mais rápido (menos compactação) e -9 ou –best indica o método de compactação mais lento (melhor compactação). O nível de compactação padrão é -6 (ou seja, inclinado para alta compactação em detrimento da velocidade).

Uso Avançado

Vários arquivos compactados podem ser concatenados. Nesse caso, o gunzip extrairá todos os membros de uma só vez. Por exemplo:

  gzip -c arquivo1> foo.gz
  gzip -c arquivo2 >> foo.gz

…então,

  gunzip -c foo

…é equivalente a:

  cat file1 file2

Em caso de danos a um membro de um arquivo .gz , outros membros ainda poderão ser recuperados (se o membro danificado for removido). No entanto, você pode obter uma melhor compactação compactando todos os membros de uma vez, por exemplo:

  gato arquivo1 arquivo2 |  gzip> foo.gz

… que comprime melhor que:

  gzip -c arquivo1 arquivo2> foo.gz

Se você deseja recompactar arquivos concatenados para obter uma melhor compactação, faça:

  gzip -cd old.gz |  gzip> new.gz

Se um arquivo compactado consistir em vários membros, o tamanho descompactado e o CRC relatado pela opção –list se aplicarão apenas ao último membro. Se você precisar do tamanho descompactado para todos os membros, poderá usar:

  gzip -cd file.gz |  wc -c

Se você deseja criar um único arquivo morto com vários membros para que os membros possam ser extraídos posteriormente independentemente, use um arquivador como tar ou zip . O GNU tar suporta a opção -z para chamar o gzip de forma transparente. O gzip foi desenvolvido como um complemento ao tar , não como um substituto.

Meio Ambiente

A variável de ambiente GZIP pode conter um conjunto de opções padrão para o gzip. Essas opções são interpretadas primeiro e podem ser substituídas por parâmetros explícitos da linha de comando. Por exemplo, para sh :

  GZIP = "- 8v --name";  exportar GZIP

para csh :

  setenv GZIP "-8v --name"

para MSDOS:

  defina GZIP = -8v --name

No Vax / VMS , o nome da variável de ambiente é GZIP_OPT , para evitar um conflito com o conjunto de símbolos para a chamada do programa.

Exemplos

Compressão:

  gzip file.txt

No exemplo acima, o comando compactaria o arquivo file.txt como file.txt.gz no diretório atual.

Expansão:

  gunzip file.txt.gz

No exemplo acima, o comando extrairia o arquivo.txt de file.txt.gz.

GorjetaVocê também pode usar o comando descompactar se precisar extrair o conteúdo de um arquivo compactado em zip .

Notase você estiver lidando com um tarball (extensão .tar.gz), use o comando tar para extrair arquivos.

tar -zxvf myfile.tar.gz

No exemplo acima, isso extrairia o conteúdo do myfile.tar.gz no diretório atual.

GorjetaConsulte o uso avançado acima para obter mais exemplos.

compactar – Comprime um arquivo ou arquivos.
pacote – Compactar arquivos usando um algoritmo de Huffman.
tar – Crie, modifique, liste o conteúdo e extraia arquivos de arquivos tar.
descompacte – liste , teste e extraia arquivos compactados em um arquivo zip.
zcat – Imprima o conteúdo não compactado dos arquivos compactados

25 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.