Como comprimir e quebrar arquivos com Linux

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

índice

  1. Algoritmos e árvores
  2. O comando gzip
    1. compressão de arquivo
    2. Descompacte para arquivo
    3. Descompressão e substituição
    4. Comprimir árvores de diretórios
    5. Obter informações sobre arquivos
    6. velocidade versus compressão
  3. Comprimido, desprotegido

Algoritmos e árvores

A ferramenta de compressão de dados gzip 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ê precise trabalhar, você encontrará o gzip nele. Então, se você sabe como usar o gzip , está pronto para ir sem instalar nada.

gzip é uma implementação do algoritmo DEFLATE que foi inventado e patenteado por Phil Katz do PKZIP. O algoritmo DEFLATE melhora os algoritmos de compactação anteriores que funcionavam com 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.

Strings exclusivas recebem um token de ID exclusivo em virtude de sua posição na árvore . Os tokens são usados ​​para substituir 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 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 redação deste artigo, 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 era de suma 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, em todo o mundo, as pessoas estão acessando armazenamento em nuvem e serviços de streaming. A compactação de dados ainda é de vital importância, mesmo que tudo o que você esteja fazendo seja reduzir algo que precise carregar ou transmitir, ou se estiver tentando recuperar algum espaço em um disco rígido local.

O comando gzip

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

compressão de arquivo

Para compactar um arquivo, tudo o que você precisa fazer é passar o nome do arquivo para o domínio gzip . Vamos verificar o tamanho original 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-*

O arquivo original, uma planilha chamada "calc-sheet.ods", tem 11 KB, e o arquivo compactado, também conhecido como arquivo compactado, tem 9,3 KB. Observe que o nome do arquivo é o nome do arquivo original com ".gz" anexado.

O primeiro uso do comando ls aponta para um arquivo específico, a planilha. O segundo uso de ls localiza todos os arquivos que começam com "calc-", mas localiza apenas o arquivo compactado. Isso porque, por padrão, o gzip cria o arquivo morto e exclui o arquivo original.

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

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

Desta vez, o arquivo ODS original é preservado.

Descompacte para arquivo

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

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

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

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

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

Descompressão e substituição

Se você tentar extrair um arquivo para um diretório onde existe o arquivo original, ou um arquivo diferente com ele, o gzip solicitará que você opte por abandonar a extração ou sobrescrever o arquivo existente.

 gzip -d arquivo-texto.txt.gz

Se você souber com antecedência que deseja ter o arquivo no diretório substituído pelo arquivo morto, use a opção -f (forçar).

 gzip -df arquivo-texto.txt.gz

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

Comprimir árvores de diretórios

A opção l -r (recursiva) faz com que o gzip comprima arquivos em uma árvore de diretórios inteira. Mas o resultado pode não ser o esperado.

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

 nível de árvore1

vamos gzip a árvore de diretórios e ver o que acontece.

 gzip -r nível1/
 nível de árvore1

O resultado é que o 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, o gzip só pode colocar um único arquivo em um arquivo.

Podemos criar um arquivo contendo uma árvore de diretórios e todos os seus arquivos, mas precisamos colocar outro comando em ação. l tar O programa é usado para criar arquivos compactados de muitos arquivos, mas não possui suas próprias rotinas de compactação. Mas usando as opções apropriadas com o tar podemos fazer com que o tar envie o arquivo via gzip . Dessa forma obtemos um arquivo compactado e um arquivo de vários arquivos ou vários diretórios.

 tar -czvf level1.tar.gz level1

tar as opções são:

  • C: Crie um arquivo.
  • z: Enviar arquivos através do gzip .
  • v : Modo detalhado. Imprime na janela do terminal o que o tar está fazendo.
  • f level1.tar.gz : Nome do arquivo a ser usado para o arquivo morto.

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

Obter informações sobre arquivos

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

 gzip -l level1.tar.gz
 gzip -l arquivo-texto.txt.gz

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

 gzip -t level1.tar.gz

Se tudo correr bem, você retornará silenciosamente à linha de comando. A ausência de más notícias é uma 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

velocidade versus compressão

Você pode optar por priorizar a velocidade de criação do arquivo ou o grau de compactação. Para fazer isso, forneça um número como opção, de -1 até o topo -9 . A opção -1 fornece a velocidade mais rápida com o sacrifício da compressão e -9 fornece a compressão mais alta com o sacrifício da velocidade.

A menos que você forneça uma dessas opções, o gzip usa -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

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 o nível de compactação 9 e o nível de compactação 6. Você só pode extrair tanta compactação de um determinado arquivo e, neste caso, esse limite foi atingido com o nível de compactação 6. Elevar para 9 não trouxe mais redução . no tamanho do arquivo. Com arquivos maiores, a diferença entre o nível 6 e o ​​nível 9 seria mais pronunciada.

Comprimido, desprotegido

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 aprimoradas. Qualquer pessoa com acesso ao seu arquivo pode usar o gzip para descompactá-lo.

  • Departamento de Defesa dos EUA enganado para pagar US $ 23,5 milhões a ator de phishing
  • Todos os logotipos da Microsoft Company de 1975 a 2022

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão geek

O que é uma carga fantasma?

Como descompactar um arquivo gzip?

Método 2

  1. Clique com o botão direito do mouse no arquivo GZ e passe o mouse sobre "WinZip" para exibir o menu secundário.
  2. Clique em " Descompactar para…" e escolha o local onde deseja salvar o arquivo .
  3. Clique em " Descompactar " para abrir o conteúdo do arquivo GZ .

Como usar o gzip no Windows?

Comprimir. alcatrão . alcatrão . gz . tgz. gz com 7-Zip

  1. Abra o 7-Zip.
  2. Encontre os arquivos para compactar.
  3. Selecione-os com o mouse.
  4. Clique com o botão direito nos arquivos selecionados e 7-Zip> “Adicionar ao arquivo”
  5. No menu suspenso Formato de arquivo, selecione tar ou gzip .
  6. Aceitar.

O que o comando gzip faz?

O comando Gzip cria um arquivo compactado que termina com . gz ; Gunzip extrai os arquivos compactados e exclui o arquivo. gz . O arquivo será compactado e salvo como nome de arquivo.

Como descompactar um arquivo gz no Unix?

Descompressão de fix packs (Linux e UNIX )

  1. Copie a imagem gzipada para um local temporário.
  2. Mude para o diretório onde você copiou a imagem.
  3. Digite o seguinte comando para descompactar o arquivo : gunzip -c file_name .tar. gz | tar -xvf – em que file_name é o fix pack que está sendo instalado.
Ir arriba