Opções de compactação de arquivos Linux e comparação

Opções de compactação de arquivos Linux e comparação
A compressão, em geral, é um método útil que está codificando informações usando menos dados do que o original. No caso do Linux, existem várias opções de compressão, cada uma com seus próprios benefícios.

Uma distro Linux genérica oferece acesso a um punhado de mecanismos de compressão realmente úteis e simples. Este artigo só se concentrará neles.

Tipos de compressão

A compressão está codificando e representando informações usando menos bits do que originalmente foi. No caso de compactação de arquivo, um método de compressão utiliza seu próprio algoritmo e cálculo matemático para gerar uma saída geralmente menor que o tamanho do arquivo original. Por causa de como a compressão diferente funciona e a natureza aleatória dos arquivos, a milhagem pode variar muito.

Existem 2 tipos de compressão.

  • Compressão com perda: Este é um tipo arriscado de compressão que não garante a integridade dos dados. Essencialmente, uma vez comprimido, há um risco de que o arquivo original não possa ser reconstruído usando o arquivo comprimido.
    Um exemplo sólido desse tipo de compressão é o conhecido formato MP3. Quando um MP3 é criado a partir do arquivo de áudio original, é significativamente menor que o arquivo de música original. Isso causa perda de alguma qualidade de áudio.
  • Compressão sem perdas: Este é o tipo de compressão mais amplamente utilizado. Usando um método de compressão "sem perdas", o arquivo original pode ser reconstruído do arquivo compactado. Os métodos de compactação que discutirei neste artigo são métodos de compressão sem perdas.

Compressão Linux

A maioria dos métodos de compressão está disponível na ferramenta alcatrão. Quanto à compactação "ZIP", usaremos o fecho eclair ferramenta. Supondo que seu sistema já tenha essas ferramentas instaladas, vamos começar.

No começo, precisamos de um arquivo de teste. Execute o seguinte comando para criar um.

$ base64 /dev /urandom | Cabeça -C 20000000> Arquivo.TXT

Isso criará um arquivo de texto com tamanho de 20 MB.

Agora, vamos criar 10 cópias do arquivo. Juntos, são 200 MB.

Zip para compressão

Zip é bastante comum. Para criar um arquivo zip, a ferramenta ZIP requer a seguinte estrutura de comando.

$ zip .fecho eclair

Para comprimir todos os arquivos no diretório de teste em um único arquivo zip, execute este comando.

$ zip teste.fecho eclair *

O tamanho da entrada era de 200 MB. Após a compressão, agora é 152 MB!

Por padrão, a ferramenta ZIP aplicará a compactação esvaziada. No entanto, também é capaz de usar a compressão BZIP2. Além disso, você também pode criar arquivos ZIP protegidos por senha! Saiba mais sobre ZIP.

Alcatrão para compressão no Linux

Alcatrão não é um método de compressão. Em vez disso, é mais frequentemente usado para criar arquivos. No entanto, ele pode implementar vários métodos de compactação populares para o arquivo.

Para lidar com o arquivo de alcatrão (também conhecido como "Tarball"), há a ferramenta alcatrão. Saiba mais sobre alcatrão. Geralmente, a ferramenta TAR usa a seguinte estrutura de comando.

$ tar

Para adicionar os arquivos de teste em um único arquivo TAR, execute o seguinte comando.

Teste $ TAR -CVF.alcatrão *

Aqui, o tamanho do arquivo permanece o mesmo.

Gzip para compressão no Linux

GNU ZIP ou GZIP é outro método de compressão popular que, na minha opinião, é melhor que o zíper tradicional por causa de sua melhor compressão. É um produto de código aberto criado por Mark Adler e Jean-Loup Gailly, que estava originalmente destinado a substituir o Unix comprimir Utilitário.

Para gerenciar arquivos do GZIP, existem 2 ferramentas disponíveis: alcatrão e gzip. Vamos verificar os dois.

Primeiro, a ferramenta GZIP. Veja como a estrutura de comando GZIP parece.

$ gzip

Por exemplo, o comando a seguir substituirá o teste1.txt com teste1.TXT.Arquivo compactado GZ.

$ gzip -v test1.TXT

Se você deseja comprimir um diretório inteiro usando GZIP, execute este comando. Aqui, a bandeira "-r" é para compressão "recursiva". O GZIP passará por todas as pastas e comprime o (s) arquivo (s) individual em cada uma delas.

$ gzip -r

O GZIP suporta vários valor de força de compressão, a partir de 1 (menos compressão, mais rápido) a 9 (melhor compressão, mais lenta).

$ gzip -v -9

Para um melhor controle sobre a saída e a facilidade de uso, o alcatrão é melhor para a tarefa. Execute o seguinte comando.

Teste $ tar -cvzf.alcatrão.gz *

O resultado é semelhante ao zip usando deflate, resultando em 152 MB após a compressão.

BZIP2 para compressão no Linux

O BZIP2 é uma ferramenta gratuita e de fonte aberta que usa o algoritmo de roda de tocas para compactação. Introduzido pela primeira vez em 1996, o BZIP2 é fortemente usado como uma alternativa à compressão GZIP.

Como Gzip, existem 2 ferramentas para trabalhar com BZIP2: TAR e BZIP2.

A ferramenta BZIP2 funciona semelhante à ferramenta GZIP. Só pode funcionar com apenas um único arquivo de cada vez. Aqui está a estrutura de comando.

$ bzip2

Vamos comprimir o teste1.arquivo txt. Aqui, a bandeira "-v" é para o modo detalhado.

$ bzip2 -v test1.TXT

Semelhante ao GZIP, o BZIP2 também suporta diferentes níveis de compressão, a partir de 1 (padrão, menos uso de memória) a 9 (compressão extrema, uso de memória alta).

$ bzip2 -v -9

A melhor maneira de usar a compressão BZIP2 é usando o alcatrão. Use o seguinte comando.

Teste $ tar -cvjf.alcatrão.BZ2 *

A compressão é um pouco melhorada do que as anteriores. Agora, o tamanho do arquivo diminuiu para 151.7 MB.

XZ para compressão no Linux

É um recém -chegado relativo no campo da compressão. Lançado pela primeira vez em 2009, ele viu um crescimento constante de uso desde então.

A ferramenta de compactação XZ usa o algoritmo LZMA2 conhecido por maior taxa de compressão em comparação com GZIP e BZIP2, tornando -o uma ótima opção quando você deseja salvar a quantidade máxima de espaço em disco. No entanto, isso vem com o custo de requisitos mais altos de memória e consumo de tempo.

O arquivo criado pela ferramenta de compactação XZ tem a extensão .xz. Para comprimir um único arquivo, você pode chamar diretamente a ferramenta XZ.

$ xz

Por exemplo, execute o seguinte comando para comprimir o teste1.arquivo txt.

$ xz -v test1.TXT

Semelhante a outros métodos de compressão mencionados, o XZ também suporta várias gama de força de compressão, a partir de 1 (compressão mais baixa, mais rápida) a 9 (melhor compressão, mais lenta). Se você não tem consideração pelo tempo e só quer economizar espaço, então vá para o extremo.

$ xz -v -9

Para criar um arquivo XZ compactado de todos os arquivos de teste, execute este comando.

Teste $ tar -cvjf.alcatrão.xz *

Aqui, o tamanho do arquivo de saída é 153.7 MB.

Extraindo arquivos compactados

Extrair os arquivos que criamos é mais fácil do que criá -los. Para extrair um arquivo zip, use a seguinte estrutura de comando.

$ desnzip .Zip -d

Para extrair o arquivo zip que criamos, execute este comando. Isso irá extrair todo o conteúdo no mesmo diretório.

$ uNzip teste.fecho eclair

Para extrair alcatrão, alcatrão.gz, alcatrão.bz2 e alcatrão.Arquivos XZ, temos que usar o alcatrão ferramenta. O seguinte comando TAR é aplicável para extrair todos eles.

$ tar -xvf

Por exemplo, vamos extrair todos os arquivos do arquivo compactado BZ2.

Teste $ tar -xvf.alcatrão.BZ2

Para descomprimir um gzip (não alcatrão.GZ) Arquivo, execute este comando.

$ gzip -d

Da mesma forma, o seguinte comando descompactará o arquivo bzip2.

$ bzip2 -d

A mesma estrutura de comando se aplica ao arquivo XZ.

$ xz -d

Pensamentos finais

Felizmente, agora você tem conhecimento suficiente para lidar com as tarefas de compactação em diferentes circunstâncias. Dependendo do requisito específico, todos os métodos de compressão oferecem recursos muito atraentes.

Uma coisa importante a ser observada é que o resultado da compressão não será o mesmo o tempo todo. Com diferentes entradas de dados, a saída será diferente. Por exemplo, em alguns casos, XZ pode oferecer resultado de compressão insana, enquanto neste exemplo não. O mesmo vale para outros métodos.

Para saber mais detalhadamente sobre essas ferramentas, confira sua respectiva página de homem.

$ MAN ZIP