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.
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ó.
10 exemplos do comando tar para comprimir/extrair arquivos no Linux
Saiba como compilar e instalar programas Linux distribuídos diretamente pelo código-fonte [tar.gz]
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:
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.
Saiba como executar aplicações gráficas remotamente através de uma conexão 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:
Detalhes sobre o arquivo compactado (observe a taxa de compressão de 20.9%):
Para descomprimir o arquivo:
Para comprimir todos arquivos de um diretório recursivamente:
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.
Agora, usando um arquivo TAR, você pode executar:
Um arquivo “arquivo_linux10complica.tar.gz” é criado!
Para descomprimir:
Outra opção é comprimir diretamente a pasta usando o comando tar:
10 exemplos do comando tar para comprimir/extrair arquivos no Linux
Um arquivo “arquivo_linux10complica.tar.gz”, também, é criado 😉
Para descompactar:
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:
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 %):
Para descomprimir:
Outra opção é comprimir diretamente a pasta usando o comando tar:
10 exemplos do comando tar para comprimir/extrair arquivos no Linux
Para descomprimir:
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:
Para descomprimir:
No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR:
Para descomprimir:
Outra opção é comprimir diretamente a pasta usando o comando tar:
10 exemplos do comando tar para comprimir/extrair arquivos no Linux
Para descomprimir:
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:
Para descompactar:
No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR:
Para descomprimir:
Outra opção é comprimir diretamente a pasta usando o comando tar:
10 exemplos do comando tar para comprimir/extrair arquivos no Linux
Para descomprimir:
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:
10 exemplos do comando tar para comprimir/extrair arquivos no Linux
Para descomprimir:
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:
Para descompactar:
No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR:
Para descomprimir:
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:
Para descompactar:
No caso, de compressão de vários arquivos simultâneos (diretório) use um arquivo TAR:
Para descomprimir:
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:
Para comprimir:
Para descomprimir:
Via | Unixmen | DigitalOcean
Belíssima postagem, obrigado
Valiosa postagem meu amigo. Grato!