Todos os segredos da compressão em GNU / Linux

Tubos de compressão

Voltamos ao problema usual que se torna uma vantagem para muitos usuários avançados do GNU / Linux e é o grande número de alternativas ou possibilidades disponíveis. Isso para os mais inexperientes pode ser um problema quando não se sabe bem qual escolher, mas como digo, ter mais possibilidades ou flexibilidade nunca é uma coisa ruim, muito pelo contrário. Neste caso, vamos falar sobre o algoritmos e procedimentos de compressão e descompressão que existem na nossa plataforma preferida para que os possas ver de forma diferente e não como uma grande confusão por não saberes qual é a melhor opção no teu caso ...

A verdade é que não existem apenas ferramentas tão utilizadas como tar com as quais podemos criar pacotes que também podem ser adicionados algum tipo de compressão como estamos habituados a ver em os famosos tarballs do qual já falamos em LxA em muitas ocasiões. Também encontraremos variantes de ferramentas triviais e frequentes, como grep, para pesquisar dentro de arquivos compactados, como bzfgrep, ou mesmo outras, como less e more, que também têm suas variantes para arquivos compactados, como bzless e bzmore. Para ver todos eles, basta dar uma olhada na saída do seguinte comando:

apropos compress

Algoritmos e testes:

Entre todos algoritmos compactação sem perdas disponível no Linux para compactar e descompactar dados, temos muitas opções. Para obter uma prova do tempo que leva para compactar com um ou outro algoritmo de compactação ou quanto tempo leva para descompactá-lo, sugiro que você faça alguns testes. Você pode usar o comando time para isso, que lhe dará o tempo que foi gasto para o processo de compactação e descompactação. Por exemplo, se você for usar a ferramenta zip para compactar um arquivo chamado test:

time zip prueba.zip prueba

Isso desperdiçaria o tempo gasto, mas se você quiser ver o tamanho do arquivo geradoVocê pode tentar compactar o mesmo arquivo com diferentes algoritmos e ferramentas de compactação e depois de ter todos os arquivos compactados em um diretório com um simples comando para listar, verifique o tamanho de cada um:

ls -l

Se preferir, você também pode fazer uso de outras ferramentas para comparar arquivos compactados, por exemplo, com algumas variantes da ferramenta diff:

xzdiff [opciones] fichero1 fichero2

lzdiff [opciones] fichero 1 fichero2

Se você quiser ver gráficos sobre o tamanho e a velocidade dos algoritmos, pode visitar este outro link.

Ferramentas de compressão:

Em relação a as ferramentas disponíveis temos muitos deles, alguns com uma interface gráfica para iniciantes e que simplesmente teremos que lidar com uma GUI simples e intuitiva para realizar compressões e descompressões como PeaZip, ou 7zip, ... etc. Especificamente, o primeiro é capaz de trabalhar com vários formatos, especificamente mais de 180 deles. Mas se você é um daqueles que ainda gosta de trabalhar com terminal, terá um grande número de ferramentas que certamente conhece:

  • compactar e descompactar: é uma boa opção se o que você deseja são arquivos que sejam portáveis ​​para outros sistemas operacionais, pois você encontrará ferramentas para trabalhar com esses arquivos em sistemas Microsoft Windows e também no macOS e em outros. Por exemplo, para compactar um arquivo ou diretório denominado test e, em seguida, descompactá-lo:
zip prueba.zip prueba

unzip prueba.zip

  • gzip: É o melhor se o que você deseja é portabilidade simplesmente entre sistemas operacionais Unix / Linux. Talvez a taxa de compactação seja quase idêntica à do zip, talvez um pouco melhor, mas você não encontrará muita diferença no tamanho do arquivo em zip ou gzip. Para comprimir e descomprimir com esta ferramenta podemos usar duas opções no caso de descompressão e são a opção -do, usando diretamente o alias gunzip:
gzip prueba

gzip -d prueba.gz

gunzip prueba.gz

  • bzip2: Tal como o anterior, este algoritmo está muito presente nos sistemas operativos Unix / Linux, embora demore um pouco mais nos processos de compressão e descompressão do que no caso do gzip. Neste caso, o atraso não se traduzirá em uma taxa de compressão mais alta como no caso de xz, já que os arquivos compactados em bzip2 ocuparão um pouco mais que os arquivos gzip. É por isso que é recomendado evitar o bzip2 e optar por xz ou gzip. Embora tudo dependa um pouco do tipo de arquivo que você está tentando compactar ... Por exemplo:
bzip2 prueba

bzip2 -d prueba.bz2

  • xz: É o formato preferido para arquivos grandes, pois oferece as melhores taxas de compactação, mas também é verdade que levará mais tempo para concluir a compactação ou descompactação. É bem mais recente que os anteriores, então você pode se deparar com distros mais primitivas ou sistemas Unix antigos que não têm uma ferramenta para isso. Exemplos:
xz prueba

xz -d prueba.xz

  • unrar e rar: Também podemos trabalhar com formatos RAR no Linux graças a estas ferramentas, embora não seja tão popular no caso dos sistemas * nix como os anteriores ... Neste caso podemos escolher:
rar a prueba.rar prueba

unrar e prueba.rar

  • comprimir e descomprimir: e embora o uso de compactar esteja se perdendo e não seja tão popular quanto os anteriores, também não gostaria de ignorar essa ferramenta. Ele é usado para compactar arquivos com uma extensão .Z e faz isso graças a um algoritmo Lempel-Ziv modificado. Por exemplo:
compress -v prueba

uncompress prueba.Z

Se você quiser trabalhar diretamente com a ferramenta de alcatrãoVocê também pode compactar os arquivos ao mesmo tempo, bem como descompactá-los e descompactá-los. Neste caso podemos passar as opções do tipo de algoritmo a ser usado diretamente para o tar. Mas antes de mais nada, você deve saber que com a opção c criamos um pacote e com a opção x o extraímos. Por exemplo:

tar czvf prueba.tar.gz prueba

tar xzvf prueba.tar.gz

Como você pode ver, usamos as opções zvf que são para indicar o tipo de algoritmo de compressão z (neste caso gzip), v para o modo verboso que dá informações sobre o que está fazendo, ef para indicar o arquivo com o qual trabalhar ... Bem, se mudarmos que z por outra letra correspondente a outro tipo de algoritmo, podemos alterar o tipo de compressão aplicada ao tarball:

opção Algoritmo Extensão
z gzip .tar.gz
j bzip2 .tar.bz2
J xz .tar.xz
zip zip .tar.lz
lzma lzma .tar.lzma

* Claro que todos os comandos anteriores têm opções interessantes que eu convido você a descobrir usando man, algumas muito necessárias como recursão, etc.

Não se esqueça deixe seus comentários...


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Javier Martinez Echenique dito

    Eu, em particular, uso 7zip

  2.   Marcelo dito

    Você perdeu o 7zip. Uma opção muito boa e um SOFTWARE GRATUITO.

  3.   Umberto dito

    Excelente informação, embora eu tivesse começado dizendo que também pode ser comprimido e descomprimido graficamente sem nenhum problema para que você não veja o "vespão" de plantão que diz que GNU / Linux é muito difícil e tudo tem que ser feito o console. NÃO, É OUTRA OPÇÃO.