GEEKS

Como compactar e descompactar arquivos com Gzip no Linux

Publicidade

fatmawati achmad zaenuri/Shutterstock.com

Existem muitos utilitários de compactação de arquivos, mas o que você certamente encontrará em todas as distribuições Linux é gzip. Se você aprender a usar apenas uma ferramenta de compactação, deve ser gzip .

RELACIONADO: Como funciona a compactação de arquivos?

Algoritmos e árvores

o gzip A ferramenta de compressão de dados foi escrita no início dos anos 90 e ainda é encontrada em todas as distribuições Linux. Existem outras ferramentas de compactação disponíveis, mas não importa em qual computador Linux você exact trabalhar, você encontrará gzip nele. Então, se você sabe usar gzipvocê está pronto para ir sem a necessidade de instalar nada.

gzip é uma implementação do algoritmo DEFLATE que foi inventado – e patenteado – por Phil Katz do famoso PKZIP. O algoritmo DEFLATE melhorou os algoritmos de compressão anteriores que operavam em variações de um tema. Os dados a serem compactados são verificados e as strings exclusivas são identificadas e adicionadas a uma árvore binária.

Publicidade

As strings exclusivas recebem um token de ID exclusivo em virtude de sua posição na árvore. Os tokens são usados ​​para substituir as strings nos dados e, como os tokens são menores do que os dados que substituíram, o arquivo é compactado. Substituir os tokens pelas strings originais re-infla os dados de volta ao seu estado descompactado.

O algoritmo DEFLATE adicionou a reviravolta de que as strings encontradas com mais frequência receberam os menores tokens e as strings encontradas com menos frequência receberam as maiores. O algoritmo DEFLATE também incorporou ideias de dois métodos de compressão anteriores, codificação Huffman e compressão LZ77.

No momento da escrita, o algoritmo DEFLATE tem quase três décadas. Três décadas atrás, os custos de armazenamento de dados eram altos e as velocidades de transmissão eram lentas. A compactação de dados technology de necessary importância.

O armazenamento de dados é muito mais barato hoje e as velocidades de transmissão são muito mais rápidas. Mas temos muito mais dados para armazenar, e as pessoas em todo o mundo estão acessando armazenamento em nuvem e serviços de streaming. A compactação de dados ainda é vitalmente importante, mesmo se tudo o que você está fazendo é encolher algo que precisa carregar ou transmitir, ou está tentando recuperar algum espaço em um disco rígido native.

O comando gzip

Quanto maior for um arquivo, melhor será a compactação. Isto é devido a duas razões. Uma é que haverá muitas sequências de bytes repetidas e idênticas em um arquivo grande. A segunda razão é que a lista de strings e tokens precisa ser armazenada no arquivo compactado para que a descompactação possa ocorrer. Com um arquivo muito pequeno, essa sobrecarga pode eliminar os benefícios da compactação. Mas mesmo com um arquivo relativamente pequeno, é provável que haja alguma redução no tamanho.

Compactando um arquivo

Para compactar um arquivo, tudo que você precisa fazer é passar o nome do arquivo para o gzip comando. Vamos verificar o tamanho unique do arquivo, compactá-lo e, em seguida, verificar o tamanho do arquivo compactado.

ls -lh calc-sheet.ods
gzip calc-sheet.ods
ls -lh cal-*

Compactando uma planilha

O arquivo unique, uma planilha chamada “calc-sheet.ods”, tem 11 KB, e o arquivo compactado, também conhecido como arquivo morto, tem 9,3 KB. Follow que o nome do arquivo é o nome do arquivo unique com “.gz” anexado a ele.

O primeiro uso do ls O comando tem como alvo um arquivo específico, a planilha. O segundo uso de ls procura por todos os arquivos que começam com “calc-”, mas encontra apenas o arquivo compactado. Isso porque, por padrão, gzip cria o arquivo morto e exclui o arquivo unique.

Isso não é um problema. Se você precisar do arquivo unique, poderá recuperá-lo do arquivo morto. Mas se você preferir manter o arquivo unique, você pode usar o -k (manter) opção.

gzip -k calc-sheet.ods
ls -lh calc-sheet.*

Compactando um arquivo e mantendo o arquivo original

Desta vez, o arquivo ODS unique é mantido.

Descompactando um arquivo

Para descompactar um arquivo GZ, use o -d (descompactar) opção. Isso extrairá o arquivo compactado do arquivo e o descompactará para que seja indistinguível do arquivo unique.

ls calc-sheet.*
gzip -d calc-sheet.ods.gz
ls calc-sheet.*

Descompactando um arquivo com gzip

Desta vez, podemos ver que gzip excluiu o arquivo morto após extrair o arquivo unique. Para reter o arquivo, precisamos usar o -k (manter) opção novamente, bem como a opção -d (descompactar) opção.

ls calc-sheet.*
gzip -d calc-sheet.ods.gz
ls calc-sheet.*

Descompactando um arquivo e retendo o arquivo morto

Desta vez, o gzip não exclui o arquivo compactado.

RELACIONADO: Por que os arquivos excluídos podem ser recuperados e como você pode evitá-lo

Descompactando e sobrescrevendo

Se você tentar extrair um arquivo em um diretório onde o arquivo unique — ou um arquivo diferente com o mesmo — existe, gzip solicitará que você escolha abandonar a extração ou substituir o arquivo existente.

gzip -d text-file.txt.gz

Substituir o prompt do gzip quando o arquivo no arquivo já existe no diretório

Se você sabe de antemão que está feliz em ter o arquivo no diretório substituído pelo arquivo do arquivo morto, use a opção -f (forçar).

gzip -df text-file.txt.gz

Forçando a substituição de um arquivo existente

O arquivo é substituído e você retorna silenciosamente à linha de comando.

Compactando Árvores de Diretórios

o -r opção (recursiva) causa gzip para compactar os arquivos em uma árvore de diretórios inteira. Mas o resultado pode não ser o que você espera.

Aqui está a árvore de diretórios que vamos usar neste exemplo. Cada diretório contém um arquivo de texto.

tree level1

Testar a estrutura da árvore de diretórios

Vamos usar gzip na árvore de diretórios e veja o que acontece.

gzip -r level1/
tree level1

Estrutura de diretórios depois de executar o gzip nele

O resultado é gzip criou um arquivo para cada arquivo de texto na estrutura de diretórios. Ele não criou um arquivo de toda a árvore de diretórios. Na verdade, gzip só pode colocar um único arquivo em um arquivo.

Podemos criar um arquivo que contenha uma árvore de diretórios e todos os seus arquivos, mas precisamos colocar outro comando em ação. o tar programa é usado para criar arquivos de muitos arquivos, mas não tem suas próprias rotinas de compressão. Mas usando as opções apropriadas com tarpodemos causar tar para enviar o arquivo morto através gzip. Dessa forma, obtemos um arquivo compactado e um arquivo multi-arquivo ou multi-diretório.

tar -czvf level1.tar.gz level1

o tar as opções são:

  • c: Crie um arquivo.
  • z: Empurre os arquivos através gzip.
  • v: Modo detalhado. Imprima na janela do terminal o que tar é até.
  • f level1.tar.gz: Nome do arquivo a ser usado para o arquivo morto.

Saída do tar trabalhando na árvore de diretórios

Isso arquiva a estrutura da árvore de diretórios e todos os arquivos dentro da árvore de diretórios.

RELACIONADO: Como compactar e extrair arquivos usando o comando tar no Linux

Obtendo informações sobre arquivos

o -l (lista) fornece algumas informações sobre um arquivo morto. Ele mostra os tamanhos compactados e não compactados do arquivo no arquivo morto, a taxa de compactação e o nome do arquivo.

gzip -l leve1.tar.gz
gzip -l text-file.txt.gz

Usando a opção -l list para ver as estatísticas de compactação de um arquivo

Você pode verificar a integridade de um arquivo morto com o -t opção (teste).

gzip -t level1.tar.gz

Testando um arquivo com a opção -t

Se tudo estiver bem, você retornará silenciosamente à linha de comando. Nenhuma notícia é boa notícia.

Se o arquivo estiver corrompido ou não for um arquivo, você será informado sobre isso.

gzip -t not-an-archive.gz

Usando a opção -t para testar um arquivo que não é um arquivo

Velocidade as opposed to compressão

Você pode optar por priorizar a velocidade de criação do arquivo ou o grau de compactação. Você faz isso fornecendo um número como opção, de -1 por cima -9. o -1 opção oferece a velocidade mais rápida com o sacrifício de compressão e -9 dá a maior compressão com o sacrifício da velocidade.

A menos que você forneça uma dessas opções, o gzip u.s.a. -6.

gzip -1 calc-sheet.ods
ls -lh calc-sheet.ods.gz
gzip -9 calc-sheet.ods
ls -lh calc-sheet.ods.gz
gzip -6 calc-sheet.ods
ls -lh calc-sheet.ods.gz

Usando gzip com diferentes prioridades para velocidade e compressão

Com um arquivo tão pequeno como esse, não vimos nenhuma diferença significativa na velocidade de execução, mas houve uma pequena diferença na compactação.

Curiosamente, não há diferença entre usar a compactação de nível 9 e a compactação de nível 6. Você só pode extrair tanta compactação de qualquer arquivo e, neste caso, esse limite foi atingido com a compactação de nível 6. Aumentar para 9 não trouxe redução adicional no tamanho do arquivo. Com arquivos maiores, a diferença entre o nível 6 e o ​​nível 9 seria mais pronunciada.

Comprimido, Não Protegido

Não confunda compactação com criptografia ou qualquer forma de proteção. A compactação de um arquivo não oferece segurança ou privacidade aprimorada. Qualquer pessoa com acesso ao seu arquivo pode usar gzip para descompactá-lo.

RELACIONADO: Liste os 10 maiores arquivos ou diretórios no Linux



Fonte da Notícia: www.howtogeek.com

Publicidade

Osmar Queiroz

Osmar é um editor especializado em tecnologia, com anos de experiência em comunicação digital e produção de conteúdo voltado para inovação, ciência e tecnologia.

Artigos relacionados

Botão Voltar ao topo
HexTec News