5.6. bzip2 e gzip: programmi per la compressione di dati

Avrete notato che abbiamo già parlato di questi due programmi quando ci siamo occupati di tar. A differenza di winzip su Windows, qui l'archiviazione e la compressione vengono eseguite usando due strumenti separati - tar per l'archiviazione, e i due programmi di cui stiamo per parlare per comprimere i dati: bzip2 e gzip. Anche su GNU/Linux esistono altri programmi di compressione, come zip, arj o rar, ma vengono usati di rado.

Inizialmente bzip2 era stato scritto per sostituire gzip: i suoi rapporti di compressione sono generalmente migliori, sebbene richieda più memoria. Tuttavia gzip viene ancora utilizzato, a causa della maggiore diffusione che ha avuto in passato rispetto a bzip2.

I due comandi hanno una sintassi simile:
gzip [opzioni] [uno o più file]
Se non viene indicato alcun file, sia gzip che bzip2 si mettono in attesa di dati dallo standard input e inviano il risultato sullo standard output. Quindi potete usare entrambi i programmi nelle pipe. Possiedono anche alcune opzioni in comune:

Attenzione

Come comportamento predefinito, sia gzip che bzip2 cancellano i file che hanno compresso (o decompresso) se non usate l'opzione -c. Con bzip2 potete evitarlo usando l'opzione -k, ma gzip non la possiede!

Ora vediamo alcuni esempi. Supponiamo che vogliate comprimere con bzip2 tutti i file della directory attuale il cui nome finisce con .txt; userete quindi:
$ bzip2 -9 *.txt
Supponiamo che vogliate condividere il vostro archivio di immagini con qualcuno che non possiede bzip2, ma solo gzip. Non è necessario decomprimere l'archivio e poi ricomprimerlo, potete semplicemente decomprimerlo sullo standard output, usare una pipe, comprimere dallo standard input e indirizzare l'uscita verso il nuovo archivio:
bzip2 -dc images.tar.bz2 | gzip -9 >images.tar.gz
Ecco fatto. Avreste anche potuto scrivere bzcat invece di bzip2 -dc. Esiste anche un equivalente per gzip, ma il suo nome è zcat, e non gzcat. Se volete visualizzare direttamente un file compresso, senza doverlo prima decomprimere, potete anche usare bzless (e rispettivamente zless). Come esercizio, provate a trovare il comando da usare per visualizzare file compressi senza prima decomprimerli, e senza usare bzless o zless :-).


Tux on Star from MandrakeSoft Linux è un marchio registrato di Linus Torvalds. Tutti gli altri marchi e copyright appartengono ai rispettivi proprietari.
Se non diversamente specificato, i diritti di tutto il contenuto di queste pagine e di tutte le immagini sono proprietà di MandrakeSoft S.A. e MandrakeSoft Inc. 2001.
http://www.mandrakelinux.com/