Tots els secrets de la compressió en GNU / Linux

Canonades de compressió

Tornem a el problema de sempre que es transforma en un avantatge per a molts usuaris avançats de GNU / Linux i és la gran quantitat d'alternatives o possibilitats disponibles. Això per als més inexperts pot resultar un problema al no saber bé quin triar, però com dic, tenir més possibilitats o la flexibilitat mai és una cosa dolenta sinó tot el contrari. En aquest cas us parlarem dels algoritmes i procediments de compressió i descompressió que hi ha a la nostra plataforma preferida perquè els vegis d'una altra manera i no com un gran embolic al no saber quina és la millor opció en el teu cas ...

La veritat és que no només hi ha eines tan usades com tar amb les que podem crear empaquetats que a més se'ls pot afegir algun tipus de compressió com estem acostumats a veure en els famosos tarballs dels que ja hem parlat en LxA en moltes ocasions. També ens trobarem amb variants d'eines tan trivials i freqüents com grep per buscar dins de fitxers comprimits com és el cas de bzfgrep, o fins i tot altres com less i more que també tenen les seves variants per a fitxers comprimits com ho són bzless i bzmore. Per veure-les totes només hem de fer una ullada a la sortida de la següent comanda:

apropos compress

Algorismes i proves:

entre tots els algoritmes de compressió sense pèrdues disponibles a Linux per a comprimir i descomprimir dades tenim gran quantitat d'opcions. Per aconseguir proves d'el temps que es triga a comprimir amb un o altre algoritme de compressió o quant es triga a descomprimir-lo, et suggereixo que facis proves tu mateix. Podeu fer servir la comanda time per això, el quin et llançarà el temps que s'ha pres per al procés de compressió i descompressió. Per exemple, si vas a utilitzar l'eina zip per comprimir un fitxer anomenat prova:

time zip prueba.zip prueba

Això llançaria el temps usat, però si el que vols és veure la mida de l'arxiu generat, Pots provar a comprimir un mateix fitxer amb diferents algoritmes i eines de compressió i un cop tinguis tots els fitxers comprimits en un directori amb un simple comandament per llistar comprovar la mida que ocupa cada un:

ls -l

Si ho prefereixes també pots fer ús d'altres eines per comparar fitxers comprimits com per exemple amb algunes variants de l'eina diff:

xzdiff [opciones] fichero1 fichero2

lzdiff [opciones] fichero 1 fichero2

Si vols veure gràfiques sobre la mida i la velocitat dels algoritmes, pots visitar aquest altre enllaç.

Eines de compressió:

Quant a les eines disponibles tenim moltes d'elles, algunes amb interfície gràfica per als més novells i que simplement haurem de lidiar amb una senzilla i intuïtiva interfície gràfica per a realitzar les compressions i descompressions com és el cas de PeaZip, o 7zip, ... etc. Concretament el primer és capaç de treballar amb diversos formats, concretament més de 180 d'ells. Però si ets dels que encara li agrada treballar amb el terminal, llavors tindràs gran quantitat d'eines que segur coneixes:

  • zip i unzip: És una bona opció si el que vols és fitxers portables a altres sistemes operatius, ja que trobaràs eines per treballar amb aquests fitxers en sistemes Microsoft Windows i també en macOS a més d'altres. Per exemple, per comprimir un fitxer o directori anomenat prova i després descomprimir:
zip prueba.zip prueba

unzip prueba.zip

  • gzip: És la millor si el que vols és portabilitat simplement entre sistemes operatius Unix / Linux. Potser la taxa de compressió sigui gairebé idèntica a zip, potser mínimament millor, però no vas a trobar molta diferència en la mida de fitxers sota zip o gzip. Per comprimir i descomprimir amb aquesta eina podem usar dues opcions en el cas de la descompressió i són l'opció -do directament utilitzar l'àlies gunzip:
gzip prueba

gzip -d prueba.gz

gunzip prueba.gz

  • bzip2: Igual que l'anterior, aquest algoritme és molt present en sistemes operatius Unix / Linux, tot i que va trigar una mica més en els processos de compressió i descompressió que en el cas de gzip. En aquest cas la demora no es traduirà en una taxa de compressió superior com en el cas de xz, ja que els fitxers comprimits sota bzip2 ocuparan una mica més que els gzip. Per això es recomana evitar bzip2 i optar millor per xz o gzip. Encara que tot dependrà una mica de el tipus de fitxer que intentis comprimir ... Per exemple:
bzip2 prueba

bzip2 -d prueba.bz2

  • xz: És el format preferit per a mides de fitxer grans, ja que ofereix les millors taxes de compressió, però també és veritat que trigarà més a completar una compressió o descompressió. És bastant més nou que els anteriors, així que pots trobar-te amb distros més primitives o sistemes Unix vells que no tinguin una eina per a aquest. exemples:
xz prueba

xz -d prueba.xz

  • unrar i rar: També podem treballar amb formats RAR en Linux gràcies a aquestes eines, encara que no és tan popular en el cas de sistemes * nix com els anteriors ... En aquest cas podem optar per:
rar a prueba.rar prueba

unrar e prueba.rar

  • compress i uncompress: I tot i que s'està perdent l'ús de compress i no sigui tan popular com els anteriors, tampoc m'agradaria passar per alt aquesta eina. Serveix per comprimir fitxers amb extensió .Z i ho fa gràcies a un algoritme Lempel-Ziv modificat. Per exemple:
compress -v prueba

uncompress prueba.Z

Si el que vols és treballar directament amb l'eina tar, També podràs empaquetar i comprimir alhora els fitxers a l'igual que desempaquetar i descomprimir-los. En aquest cas podem passar-li les opcions de l'tipus d'algorisme a emprar directament a tar. Però abans de res has de saber que amb l'opció c vam crear un empaquetat i amb l'opció x el extraiem. Pore ​​exemple:

tar czvf prueba.tar.gz prueba

tar xzvf prueba.tar.gz

Com veus hem fet servir les opcions zvf que són per indicar el tipus d'algorisme de compressió z (en aquest cas gzip), v per a la manera verbose que llanci informació del que està fent, i f per indicar el fitxer amb el qual treballar ... Doncs bé, si canviem aquesta z per una altra lletra corresponent a un altre tipus d'algorisme podrem alterar el tipus de compressió aplicada a l'tarball:

opció algorisme extensió
z gzip .tar.gz
j bzip2 .tar.bz2
J xz .tar.xz
lzip cremallera .tar.lz
lzma lzma .tar.lzma

* Per descomptat tots els anteriors ordres tenen opcions interessants que et convido a descobrir usant man, algunes molt necessàries com les de recursivitat, etc.

no oblidis deixar els teus comentaris...


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

3 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Javier Martínez Echenique va dir

    jo en particular ús 7zip

  2.   Marcelo va dir

    Et va faltar el 7zip. Una molt bona opció i Programari Lliure.

  3.   Umberto va dir

    Excel·lent informació, encara que jo hagués començat dient que també es pot comprimir i descomprimir gràficament sense cap problema perquè no vegi el «avispao» de torn que digui que GNU / Linux és molt difícil i tot cal fer-ho a la consola. NO, ÉS UNA ALTRA OPCIÓ.