Como comprimir e descomprimir arquivos no linux

Compartilhe:

arquivos sendo comprimidos pelos comando gzip, bzip2, xz e lzop. os comandos são ilustrados por um processador que comprime os dados dos arquivos

Está precisando comprimir e descomprimir arquivos no linux usando a linha de comando e está com dificuldades ?

Então este guia técnico vai ajuda-lo(a) ensinando a executar no terminal os comandos gzip, bzip2, xz e lzop que são mais utilizados para comprimir e descomprimir arquivos no linux.

Cada um tem suas próprias características com diferentes taxas de compressão e uso de CPU.

O que é compressão de arquivos ?

A compressão de arquivos é o processo de reduzir o tamanho de arquivos utilizando algoritmos específicos. Ao diminuir o tamanho do arquivo é possível conseguir outros benefícios, como:

  • Economizar espaço de armazenamento.
  • acelerar a transferência de dados (downloads/uploads), com o arquivo menor menos tempo leva.

Existem dois tipos principais de compressão:

  • Com perda: remove permanentemente alguns dados para reduzir mais o tamanho (comum em imagens, áudio e vídeo, como JPEG e MP3).
  • Sem perda: reduz o tamanho sem perder nenhuma informação, permitindo restaurar o arquivo original.

Os comandos gzip, bzip2, xz e lzop conseguem comprimir arquivos sem perdas e são executados na interface de linha de comando de distribuições linux.

Uma morsa metalica espremendo arquivos e abaixo uma pasta - ilustrando como comprimir e descomprimir arquivos no linux

É importante diferenciar compressão de arquivamento, enquanto a compressão visa reduzir o tamanho dos dados, o arquivamento agrupa múltiplos arquivos em um único sem reduzir o tamanho.

Antes de ir para a prática é essencial você saber executar comandos no terminal, por isso recomendo a leitura do guia completo sobre comandos linux.

Comando gzip

O gzip é um dos comandos mais populares para comprimir e descomprimir arquivos no linux, ele utiliza o algoritmo DEFLATE, que é uma combinação de codificação LZ77 e Huffman, oferecendo boa velocidade com uma taxa de compressão equilibrada.

Antes de executar o comando instale o gzip no sistema:

Para comprimir um arquivo com gzip, execute o comando seguido da localização do arquivo. No exemplo abaixo vou comprimir uma imagem ISO do debian que tem mais de 780 Megabytes:

O arquivo gerado têm a extensão “.gz”, perceba que o tamanho final do arquivo “.gz” mudou de 785M para 775M.

Antes de descompactar você pode querer testar a integridade do arquivo .gz. Para testar a integridade execute o comando gzip com a opção -t:

Se o arquivo não está corrompido, você pode descomprimir o arquivo executando o comando gzip com a opção -d ou execute o comando gunzip seguido da localização do arquivo:

Quando você executa o comando gzip a ação padrão é criar uma cópia do arquivo e compactá-la e em seguida apagar o arquivo original. Para manter o arquivo original use a opção -k do comando gzip:

Para visualizar informações de um arquivo .gz, execute o comando gzip com a opção -l.

Na saída tem os campos: compressed, uncompressed, ratio e uncompressed_name.

Explicação de cada um dos campos:

  • compressed: É o tamanho em bytes do arquivo após a compressão.
  • uncompressed: É o tamanho em bytes do arquivo antes da compressão(descomprimido).
  • ratio: Taxa de compressão.
  • uncompressed_name: O nome do arquivo descompactado.

É possível definir o nível de compressão para tentar comprimir mais o arquivo, o valor válido está no intervalo de 1 à 9, por padrão o gzip usa o 6.

O valor 1 representa menos uso de CPU, ou seja, compressão mais rápida, mas comprimi menos, enquanto o valor 9 representa a compressão mais lenta(mais uso de CPU) para comprimir mais.

Por exemplo, para comprimir com o nível -9, com máxima taxa de compressão, execute o comando gzip -9 seguido do nome do arquivo:

O comando gzip é ideal quando a prioridade é compatibilidade, sendo amplamente utilizado em logs de sistemas e servidores web.

Comando bzip2

Outro comando que pode ser executado para comprimir e descomprimir arquivos no linux é o
bzip2, o comando bzip2 oferece maior taxa de compressão, utilizando o algoritmo Burrows-Wheeler.

Se o bzip2 ainda não está instalado, instale:

Caso queira compactar o arquivo e remover o arquivo original, execute o comando bzip2 sem opções, por padrão, o bzip2 exclui os arquivos de entrada durante a compressão ou descompressão.

O arquivo gerado tem o mesmo nome com a extensão “.bz2”. Para descomprimir um arquivo comprimido com o comando bzip2 execute:

Para comprimir um arquivo mantendo o arquivo original execute o comando bzip2 com a opção -k:

Precisa testar a integridade do arquivo .bz2 ? Se sim, use a opção -t do comando bzip2:

A opção -v é usada para mostrar detalhes do que o comando bzip2 está fazendo.

A principal diferença entre gzip e bzip2 é que o comando bzip2 consome mais CPU e é mais lento por tentar comprimir mais o arquivo. Ele é indicado quando o espaço em disco é mais importante do que o tempo que leva para comprimir os arquivos.

Comando lzop

O comando lzop utiliza o algoritmo de compressão LZO(Lempel-Ziv-Oberhumer) que tem como foco altíssima velocidade para compressão e descompressão.

O grande diferencial do lzop é a rapidez, tornando-o ideal para Backups rápidos e Processamento em tempo real.

Em contrapartida, a taxa de compressão é menor quando comparada a gzip, bzip2 ou xz. Antes de usar o comando lzop é necessário instalá-lo no sistema:

Para comprimir um arquivo usando o comando lzop, execute o comando seguido da localização do arquivo:

Ao fim da execução do comando é gerado um arquivo com extensão “.lzo”.

Se precisar visualizar detalhes do arquivo “.lzo” execute o comando lzop com a opção -l:

A opção -v ativa o modo verbose(exibir detalhes da operação). Antes de descomprimir o arquivo verifique a integridade do arquivo “.lzo”, usando a opção -t:

Para descomprimir use a opção -d do comando lzop, no exemplo anterior o arquivo original não foi removido, logo, se tentar descomprimir o arquivo .lzo no mesmo diretório não será possível.

Para contornar essa situação e subscrever o arquivo original também será usado a opção -f para forçar a sobrescrita:

Para mais informações sobre o comando lzop leia o manual:

Comando xz

O comando xz é mais um dos comandos para comprimir e descomprimir arquivos no linux e também um dos mais eficientes em termos de taxa de compressão. Ele utiliza o algoritmo LZMA/LZMA2(Lempel-Ziv-Markov chain-Algorithm).

Antes de usar o comando xz é necessário instalá-lo no sistema:

Com o comando instalado, já é possível comprimir arquivos. Para comprimir um arquivo execute o comando xz seguido da localização do arquivo:

Ao fim do comando será gerado um novo arquivo com o mesmo nome, mas com extensão “.xz”. Você pode testar a integridade de arquivos compactados pelo xz usando a opção -t.

Para descomprimir o arquivo .xz você pode executar o comando unxz ou xz com a opção -d. Veja o exemplo:

Após a descompressão o arquivo .xz é removido.

O comando xz por padrão exclui o arquivo original(assim como o comando gzip e bzip2), para ignorar esse comportamento mantendo o arquivo que foi comprimido, use a opção -k:

Também é possível usar diferentes níveis de compressão predefinidos ( de 0 a 9, sendo 6 o padrão ). Você pode especificar um nível de compressão colocando um traço antes do número, no exemplo abaixo passo o nível 8 de compressão.

Muitas distribuições Linux usam o xz para compactação de pacotes e imagens ISO, pois consegue reduzir significativamente o tamanho dos arquivos. No entanto, o tempo de compressão é maior e também o suo de CPU.

Qual comando escolher para comprimir e descomprimir arquivos no linux ?

A escolha do comando ideal depende do objetivo: velocidade, economia de espaço ou compatibilidade com outros sistemas.

Se você está perguntando: Qual deles deve usar ? Leve em consideração os pontos fortes e fracos de cada um, abaixo um resumo:

ComandosPontos FortesPontos Fracos
gzipCompatível com vários sistemas e rápido (não tanto quanto o lzop).Compressão é inferior ao bzip2 e xz.
bzip2Comprime mais que gzip para maioria dos arquivos.Mais lento e usa muita CPU.
lzopÉ leve, Extremamente rápido tanto para compressão quanto para descompressão.Comprime menos que gzip, bzip2 e xz.
xzExcelente compressão, reduzindo muito o tamanho de arquivos.Muito lento e um alto uso de CPU e memória RAM.

É importante reforçar que alguns formatos de arquivos já são comprimidos, então mesmo comandos como xz não conseguem reduzir o tamanho.

Boas práticas ao comprimir arquivos no linux

A seguir tem uma lista com algumas boas práticas após comprimir e antes de descomprimir arquivos, veja a lista:

  • Antes de compactar escolha o comando adequado para cada situação com base nos pontos fortes e fracos, mencionados anteriormente, levando em consideração sempre a necessidade.
  • Sempre que possível mantenha o arquivo original, Isso é importante não remover o arquivo original, por que durante a compressão pode haver falhas e é melhor ter o original e a cópia(compactada) do que nada.
  • Testar arquivos após serem comprimidos e também após a descompressão.

Sobre o comando tar

O comando tar não foi abordado por que ele não comprime arquivos. Mas pode ser usado em conjunto com os comandos gzip, xz, bzip2 e lzop.

Para entender e usar o programa tar recomendo a leitura do guia completo do comando tar com exemplos práticos.

Outros comandos para comprimir e descomprimir arquivos no linux

Precisa compactar e descompactar arquivos no linux em formatos como RAR e ZIP ?

Se a resposta é sim, abaixo tem uma lista de comandos que podem ser usados para comprimir e descomprimir arquivos no linux para os formatos RAR e ZIP.

Comandos zip e unzipAprenda a usar o comando zip e unzip no linux com 10 Exemplos Essenciais
Comandos rar e unrarArquivos RAR no Linux: Aprenda a Criar e extrair arquivos rar no linux

Conclusão

Existem uma variedade de comandos para comprimir e descomprimir arquivos no linux, cada um com suas vantagens e desvantagens.

Conhecer comandos como gzip, bzip2, lzop e xz permite escolher a melhor solução para cada necessidade. Teste cada um deles na prática e descubra qual se encaixa melhor no seu fluxo de trabalho.

Entenda que são ferramentas indispensáveis para economizar espaço de armazenamento.

Espero o conhecimento técnico tenha ajudado e se ficou com alguma dúvida sobre o assunto deixe seu comentário

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.