8 ferramentas para compressão de arquivos no Linux

compressao-arquivos-linux

Compressão de arquivos é uma tarefa comum para a maioria dos administradores e usuários que desejam economizar espaço em disco e/ou mover dados de um local para outro de maneira mais eficiente. Apesar de nos dias de hoje, espaço em disco não ser um problema, as ferramentas de compressão continuam a ter grande importância.

AUMENTE SUA PRODUTIVIDADE!
Crie e administre aplicações entre ambientes diferentes. Tenha agilidade e padronização na entrega dos serviços de TI. E, assim, ganhe tempo e seja eficiente na entrega desses serviços. Saiba como

Compressão de arquivos no Linux

No Linux, quando se fala em compressão de arquivos, vem logo a mente a ferramenta TAR – “tape archive”. Presente nativamente nos sistemas Linux, essa ferramenta foi projetada para manipular dados de fitas magnéticas, com dados sequenciais. Entretanto, não se restringiu somente a isso, pois é amplamente usada para armazenar vários arquivos em um só; preservando informações como datas e permissões.

Por outro lado, a ferramenta TAR, por si só, não comprime arquivos; apenas lista-os e coloca-os em um mesmo arquivo (.tar). Para que haja compressão, existe a junção do TAR com ferramentas de compressão, bem como GZIP (tar.gz), BZIP (tar.bz2) e XZ (tar.xz). Ou seja, ao invés da ferramenta TAR comprimir os arquivos; ela, apenas, coloca diversos arquivos em um só, gerando um arquivo de formato “.tar”. 😉 Ferramentas como o GZIP são responsáveis por comprimir arquivos “.tar”.

Assim, basicamente, um arquivo “.tar” é um formato de arquivo que cria uma maneira eficiente para distribuir, armazenar, fazer backup e manipular diversos arquivos com um só.

No Linux, existem diversas ferramentas a serem utilizadas para comprimir arquivos que podem ser enviados pela internet para reduzir o tamanho total do arquivo, economizar tempo, largura de banda e espaço em disco. Muitas delas são eficazes, pois podem reduzir tamanhos dos arquivos em até 80%. Sendo assim, confira 8 ferramentas para compressão de arquivos no Linux.

Arquivo TAR

Para melhor exemplificar o uso de cada ferramenta de compressão, mostrarei como comprimir arquivos a partir de um mesmo arquivo TAR, pois ele preserva informações importantes dos arquivos; bem como: datas e permissões, preservando os dados de forma mais eficiente. Evitando, uma compressão com perda de informações. Por outro lado, é possível comprimir diversos arquivos ou um único arquivo diretamente, sem precisar criar um arquivo TAR. Entretanto, não é a melhor opção :/

Assim, como visto, um arquivo TAR apenas uni diversos arquivos em um só. Sendo assim, dado um determinado diretório, vamos criar um arquivo TAR para depois comprimi-lo usando cada uma das ferramentas de compressão mostradas a seguir:

tar -cvf arquivo_linux10complica.tar /home/ricardo/home/ricardo
/home/ricardo/arquivo1.txt
/home/ricardo/arquivo2.pdf
/home/ricardo/arquivo3.mp3

Onde,

c – (create) cria uma novo arquivo .tar
v – (verbose) todo o processo de execução é mostrado na tela
f – todo o resultado será do tipo arquivo (file)

GZIP

A ferramenta Gzip é a mais popular e “clássica” para compressão de arquivos. O Gzip mantém o nome do arquivo original gerando uma extensão “.gz” do arquivo compactado. È uma ferramenta GNU, presente nativamente, na maioria das distribuições Linux.

O Gzip usa um algoritmo de compressão conhecido como “DEFLATE“. Muito usado, também, em outras tecnologias; bem como: formato de imagem PNG, protocolo web HTTP e o protocolo de conexão remota segura SSH.

Entre as principais vantagens, destaco a sua velocidade de compressão. Ela pode, tanto, comprimir e descomprimir dados em uma taxa muito maior do que algumas tecnologias similares. Também é muito eficiente em termos de uso de memória durante a compressão/descompressão. Além disso, o Gzip é altamente compatível com sistemas Unix/Linux.

Normalmente, os arquivos gzip são armazenados com uma extensão “.gz”. Você pode compactar arquivos gzip executando:

gzip arquivo

Detalhes sobre o arquivo compactado (observe a taxa de compressão de 20.9%):

gzip -l arquivo.gz
compressed uncompressed ratio uncompressed_name
203559 209715200 20.9% arquivo

Para descomprimir o arquivo:

gzip -d arquivo.gz

Para comprimir todos arquivos de um diretório recursivamente:

AVISO
A opção abaixo não é recomendada, caso contrário poderá criar complicações durante a restauração de dados. A melhor opção é comprimir um arquivo TAR.
gzip -r pasta_arquivos/

Agora, usando um arquivo TAR, você pode executar:

gzip arquivo_linux10complica.tar

Um arquivo “arquivo_linux10complica.tar.gz” é criado!

Para descomprimir:

gzip -d arquivo_linux10complica.tar

Outra opção é comprimir diretamente a pasta usando o comando tar:

tar -cvzf arquivos_linux10complica.tar.gz /home/ricardo

Um arquivo “arquivo_linux10complica.tar.gz”, também, é criado 😉

Para descompactar:

tar xzvf arquivos_linux10complica.tar.gz

BZIP2

Outro formato de compressão comum é usado através da ferramenta bzip2. Um pouco mais moderno do que Gzip, divulgado a primeira vez em 1996, o bzip2 é uma alternativa viável para o Gzip.

Enquanto o gzip é baseado no algoritmo “DEFLATE“, o bzip2 é usa o algoritmo “Burrows-Wheeler“. Esta diferença dos algoritmos adotados resulta em um conjunto de pontos fortes e fracos, tornando-se diferente do Gzip.

A ferramenta bzip2 pode criar arquivos significativamente mais compactos que o Gzip, mas demoram muito mais tempo para atingir esses resultados devido a complexidade do algoritmo. Por outro lado, o tempo de descompressão é inferior ao de compressão; mesmo que ainda maior do que o do Gzip.

Diante de tudo isso, a performance do bzip2 requer mais memória RAM durante para compressão. Opcionalmente, ao executar o comando pode informar o parâmetros “-s”, que irá diminuir os requisitos de memória; reduzindo aproximadamente pela metade, mas, consequentemente, também levará a uma menor taxa de compressão.

Arquivos compactados com esse mecanismo geralmente recebem uma extensão de arquivo “.bz2″.

Para criar um arquivo compactado bzip2, você pode executar:

bzip2 -s arquivo
bzip2 -d arquivo.bz2

No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR (observe a taxa de compressão de 16.82 %):

bzip2 -v arquivo_linux10complica.tar
arquivo_linux10complica.tar: 1.202:1, 6.654 bits/byte, 16.82% saved, 2713600 in, 2257206 out.

Para descomprimir:

bzip2 -d arquivo_linux10complica.tar

Outra opção é comprimir diretamente a pasta usando o comando tar:

tar -cvjf arquivos_linux10complica.tar.bz2 /home/ricardo/

Para descomprimir:

tar -xvjf arquivo_linux10complica.tar

LZMA

LZMA (Lempel-Ziv-Markov chain-Algorithm) é uma ferramenta de compressão como uma performance mais rápida em comparação ao bzip. Já vem nativamente em todas as distribuições Linux. Possui um aumento máximo da taxa de compressão, mantendo a velocidade de descompressão elevada e com baixos requisitos de memória para descomprimir.

Para cria um arquivo compactado, execute:

lzma -c –stdout arquivo> arquivo.lzma

Para descomprimir:

lzma -d –stdout arquivo.lzma >arquivo

No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR:

lzma -z arquivo_linux10complica.tar

Para descomprimir:

lzma -d arquivo_linux10complica.tar

Outra opção é comprimir diretamente a pasta usando o comando tar:

tar –lzma -cvf arquivos_linux10complica.tar.lzma /home/ricardo/

Para descomprimir:

tar –lzma -xvf arquivo_linux10complica.tar

XZ

Este utilitários foi lançado em 2009 como sucessor do LZMA; e, provavelmente não é suportado por versões anteriores do kernel Linux. Por outro lado, é compatível com todas as versões mais recentes do Linux que já adicionam a extensão xz em seus sistemas automaticamente.

A ferramenta de compressão xz usa o algoritmo de compressão “LZMA2″. Este algoritmo tem uma taxa de compressão maior do que os dois exemplos anteriores, ideal para armazenar dados em espaço de disco limitado.

Mas, claro… isto tem um custo. Enquanto os arquivos compactados com o xz são menores, do que os comprimidos com outros utilitários, o processo de compressão demora muito mais tempo. Por exemplo, com a flag ‘-s’ ​​em um arquivo grande, o Gzip pode exigir cerca de meio minuto, bzip2 pode levar em torno de um minuto, e o xz pode levar cerca de quatro ou cinco minutos 😉

Este conjunto de vantagens e desvantagens torna o xz como opção relevante. Pois, arquivos comprimidos com a ferramenta xz terão uma taxa de compressão elevada.

Os arquivos criados neste formato geralmente têm uma extensão de “.xz”.

Para compactar um arquivo, basta executar:

xz arquivo

Para descompactar:

xz -d arquivo.xz

No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR:

xz -v arquivo_linux10complica.tar
100 % 2.028,3 KiB / 2.650,0 KiB = 0,765

Para descomprimir:

xz -d arquivo_linux10complica.tar

Outra opção é comprimir diretamente a pasta usando o comando tar:

tar -cJvf arquivos_linux10complica.tar.bz2 /home/ricardo/

Para descomprimir:

tar -xJvf arquivo_linux10complica.tar

LZIP

Lzip é uma ferramenta para a compressão de dados. Usa o algoritmo “Lempel-Ziv-Markov” (LZMA). É familiar aos usuários das ferramentas usuais de compressão, como gzip e bzip2.

O arquivo que é produzido pelo lzip normalmente é de extensão “.lz”. O pacote de programas lzip foi escrito em C ++ e C por Antonio Diaz Diaz e está sendo distribuído como software livre sob os termos da versão 2 ou posterior da GNU General Public License (GPL).

Para comprimir diretamente a pasta usando o comando tar:

tar -cJvf arquivos_linux10complica.tar.lz /home/ricardo/

Para descomprimir:

tar -xJvf arquivo_linux10complica.lz

RZIP

O RZIP é uma ferramenta de compressão de dados de grande escala projetado em torno do algoritmo “LZ77” seguido o “Burrows-Wheeler”, usado no bzip2. Semelhante ao Gzip e bzip2, é capaz de aproveitar as redundâncias em arquivos, permitindo que o rzip produza taxas de compressão muito melhores do essas ferramentas.

O arquivo que é produzido pelo rzip normalmente é de extensão “.rz”.

Para compactar um arquivo, basta executar:

rzip arquivo

Para descompactar:

rzip -d arquivo.xz

No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR:

rzip arquivo_linux10complica.tar

Para descomprimir:

rzip -d arquivo_linux10complica.tar

LRZIP

O LRZIP é uma ferramenta de compressão projetada para arquivos grandes, consistindo principalmente das características do rzip aliado a algoritmos de compressão LZMA, LZO, gzip, bzip2 ou ZPAQ. Quanto maior o arquivo e mais memória você tiver, melhor taxa de compressão você terá; especialmente quando os arquivos são maiores que 100MB.

O arquivo que é produzido pelo lrzip normalmente é de extensão “.lrz”.

Para compactar um arquivo, basta executar:

lrzip arquivo

Para descompactar:

lrzip -d arquivo.xz

No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR:

rzip arquivo_linux10complica.tar
– Compression Ratio: 1.304. Average Compression Speed: 2.000MB/s.
Total time: 00:00:00.45

Para descomprimir:

rzip -d arquivo_linux10complica.tar

KGB

KGB é uma ferramente de compressão pouco conhecida, mas capaz de comprimir múltiplos arquivos pequenos com alta taxa de compressão. Suporta todos os formatos mais conhecidos como zip, gzip e rar.

Baseado no algoritmo de compressão “PAQ6″, o KGB é projetado para alcançar uma taxa de compressão muito alta. Existem relatos de compressão de um arquivo de 1GB se tornar 10MB. Como consequência, o programa exige muita memória e CPU. Tem dez níveis de compressão, de muito fraco a mais forte. No entanto, a níveis de compressão mais elevados, o tempo necessário para comprimir um arquivo aumenta significativamente.

O KGB, também, usa criptografia AES-256 para criptografar os arquivos.

No Ubuntu, instale:

apt-get install kgb

Para comprimir:

kgb arquivo.kgb arquivo

Para descomprimir:

kgb aquivo.kgb

Via | Unixmen | DigitalOcean

Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários


VOCÊ TAMBÉM PODERÁ LER...

  • GHOC

    Belíssima postagem, obrigado

  • Nathan P Kun

    Valiosa postagem meu amigo. Grato!