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...
3 comentaris, deixa el teu
jo en particular ús 7zip
Et va faltar el 7zip. Una molt bona opció i Programari Lliure.
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Ó.