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.

É 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:
apt install gzip # Debian e Ubuntu
dnf install gzip # RHEL, AlmaLinux, Rockylinux e FedoraPara 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:
gzip debian-amd64-netinst.isoO 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:
gzip -v -t debian-amd64-netinst.iso.gzSe 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:
gzip -d debian-amd64-netinst.iso.gz
ou
gunzip debian-amd64-netinst.iso.gzQuando 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:
gzip -k debian-amd64-netinst.iso
Para visualizar informações de um arquivo .gz, execute o comando gzip com a opção -l.
gzip -l debian-amd64-netinst.isoNa 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:
cp -v debian-amd64-netinst.iso debian-amd64-netinst2.iso
gzip -9 debian-amd64-netinst2.isoO 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:
apt install bzip2 # Debian e Ubuntu
dnf install bzip2 # RHEL, AlmaLinux, Rockylinux e FedoraCaso 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.
bzip2 debian-amd64-netinst2.isoO arquivo gerado tem o mesmo nome com a extensão “.bz2”. Para descomprimir um arquivo comprimido com o comando bzip2 execute:
bzip2 -d debian-amd64-netinst2.iso.bz2
ou
bunzip2 debian-amd64-netinst2.iso.bz2Para comprimir um arquivo mantendo o arquivo original execute o comando bzip2 com a opção -k:
bzip2 -k debian-amd64-netinst2.isoPrecisa testar a integridade do arquivo .bz2 ? Se sim, use a opção -t do comando bzip2:
bzip2 -v -t debian-amd64-netinst2.iso.bz2
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:
apt install lzop # Debian e Ubuntu
dnf install lzop # RHEL, AlmaLinux, Rockylinux e FedoraPara comprimir um arquivo usando o comando lzop, execute o comando seguido da localização do arquivo:
lzop debian-amd64-netinst.iso
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:
lzop -lv debian-amd64-netinst.iso.lzoA 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:
lzop -tv debian-amd64-netinst.iso.lzo
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:
lzop -df debian-amd64-netinst.iso.lzoPara mais informações sobre o comando lzop leia o manual:
man lzopComando 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:
apt install xz-utils # Debian e Ubuntu
dnf install xz # RHEL, AlmaLinux, Rockylinux e FedoraCom o comando instalado, já é possível comprimir arquivos. Para comprimir um arquivo execute o comando xz seguido da localização do arquivo:
xz debian-amd64-netinst2.iso
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.
xz -v -t debian-amd64-netinst2.iso.xzPara descomprimir o arquivo .xz você pode executar o comando unxz ou xz com a opção -d. Veja o exemplo:
xz -d debian-amd64-netinst2.iso.xz
ou
unxz debian-amd64-netinst2.iso.xzApó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:
xz -k debian-amd64-netinst2.isoTambé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.
xz -k -8 debian-amd64-netinst.isoMuitas 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:
| Comandos | Pontos Fortes | Pontos Fracos |
|---|---|---|
| gzip | Compatível com vários sistemas e rápido (não tanto quanto o lzop). | Compressão é inferior ao bzip2 e xz. |
| bzip2 | Comprime 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. |
| xz | Excelente 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 unzip | Aprenda a usar o comando zip e unzip no linux com 10 Exemplos Essenciais |
| Comandos rar e unrar | Arquivos 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

