14.3. Compressione e archiviazione dei file

Talvolta è utile archiviare diversi file in un unico file in modo da poterne eseguire il backup, trasferirli con facilità in un'altra directory o addirittura trasferirli su un altro computer. A volte è anche utile comprimere i file in un unico file in modo da occupare meno spazio su disco ed eseguirne il download più velocemente.

È importante comprendere la differenza tra un file archivio e un file compresso. Un file archivio è una raccolta di file e directory archiviata in un singolo file. Un file archivio non è compresso — utilizza la stessa quantità di spazio su disco dei singoli file e directory. Un file compresso è una raccolta di file e directory archiviata in un singolo file e in modo da occupare meno spazio su disco rispetto a tutti i singoli file e directory insieme. Se non avete molto spazio su disco, potete comprimere i file che non utilizzate di frequente o i file che volete salvare ma che non usate più. Potete persino creare un file archivio e comprimerlo per occupare meno spazio su disco.

NotaNota Bene
 

Un file archivio non è compresso ma un file compresso può essere un file archivio.

14.3.1. Utilizzo di File Roller

Red Hat Linux include un'utilità grafica denominata File Roller in grado di comprimere, decomprimere e archiviare file e directory. File Roller supporta i formati di compressione e archiviazione comuni di UNIX e Linux e dispone di una semplice interfaccia e di una documentazione esauriente in caso di necessità. È anche integrato nell'ambiente desktop e nel file manager grafico per semplificare l'utilizzo dei file archiviati.

Per avviare File Roller fate clic su Menu principale => Accessori => Archivio Manager. Potete anche avviare File Roller dal prompt della shell digitando file-roller. La Figura 14-1 illustra File Roller in azione.

SuggerimentoSuggerimento
 

Se utilizzate un file manager come Nautilus, potete semplicemente fare doppio clic sul file da decomprimere o estrarre dall'archivio per avviare File Roller. Verrà visualizzata la finestra del browser di File Roller con il file decompresso o non archiviato in una cartella che potrà essere estratto o esaminato.

Figura 14-1. File Roller in azione

14.3.1.1. Decompressione ed estrazione dall'archivio con File Roller

Per estrarre dall'archivio o decomprimere un file, fate clic sul pulsante Apri sulla barra degli strumenti. Verrà visualizzato un menu che vi consentirà di scegliere l'archivio da utilizzare. Se, per esempio, disponete di un file denominato foo.tar.gz che si trova nella vostra home directory, evidenziate il file e fate clic su OK. Il file verrà visualizzato nella finestra principale del browser di File Roller come cartella, che potrà essere esaminata facendo doppio clic sull'icona della cartella. File Roller mantiene la gerarchia di tutte le directory e sottodirectory, che può risultare utile se cercate un file particolare nell'archivio. Potete estrarre singoli file o interi archivi facendo clic sul pulsante Estrai, scegliendo la directory in cui salvare i file non archiviati e facendo clic su OK.

14.3.1.2. Creazione di archivi con File Roller

Se è necessario liberare spazio su disco o inviare più file o directory di file a un altro utente tramite posta elettronica, File Roller vi consente di creare archivi di file e directory. Per creare un nuovo archivio, fate clic su Nuovo sulla barra degli strumenti. Verrà visualizzato un browser di file che vi consentirà di specificare il nome di un archivio e la tecnica di compressione (questa opzione può essere lasciata impostata ad Automatico ed è semplicemente possibile digitare il nome dell'archivio di file e l'estensione del file nella casella di testo disponibile). Fate clic su OK per creare il nuovo archivio, pronto per essere completato con file e directory. Per aggiungere i file al nuovo archivio, fate clic su Aggiungi per visualizzare la finestra del browser (Figura 14-2) che è possibile esaminare per trovare il file o la directory desiderata. Fate clic su OK al termine dell'operazione e su Chiudi per chiudere l'archivio.

Figura 14-2. Creazione di un archivio con File Roller

SuggerimentoSuggerimento
 

File Roller consente di effettuare un numero maggiore di operazioni di quante ne sono descritte in questo capitolo. Per ulteriori informazioni, consultate il manuale di File Roller, disponibile facendo clic su Aiuto => Manuale.

14.3.2. Compressione dei file al prompt della shell

I file compressi usano meno spazio su disco e vengono scaricati più velocemente dei file non compressi. In Red Hat Linux per comprimere i file, potete usare i tool di compressione gzip, bzip2 o zip.

È consigliato l'uso del tool di compressione bzip2 perché fornisce la massima compressione ed è disponibile sulla maggior parte dei sistemi operativi UNIX. Anche il tool di compressione gzip può essere disponibile sulla maggior parte dei sistemi operativi UNIX. Per trasferire file da Linux ad altri sistemi operativi, tra cui MS Windows, dovete usare zip perché è il più diffuso sugli altri sistemi operativi.

Tool di compressioneEstensione dei fileTool di decompressione
gzip.gzgunzip
bzip2.bz2bunzip2
zip.zipunzip

Tabella 14-1. Tool di compressione

Per convenzione, i file compressi con gzip hanno l'estensione .gz, i file compressi con bzip2 hanno l'estensione .bz2 e i file compressi con zip hanno l'estensione .zip.

I file compressi con gzip sono decompressi con gunzip, i file compressi con bzip2 sono decompressi con bunzip2 e i file compressi con zip sono decompressi con unzip.

14.3.2.1. Bzip2 e Bunzip2

Per utilizzare bzip2 per comprimere un file, digitate il seguente comando al prompt della shell:

bzip2 filename

Il file viene compresso e salvato come filename.bz2.

Per espandere un file compresso, digitate il seguente comando:

bunzip2 filename.bz2

Il file filename.bz2 viene cancellato e sostituito con filename.

Potete usare bzip2 per comprimere più file e directory contemporaneamente inserendo uno spazio tra i vari file:

bzip2 filename.bz2 file1 file2 file3 /usr/work/school 

Il comando soprastante comprime file1, file2, file3 e il contenuto della directory /usr/work/school (presupponendo che esista) e li colloca nel file filename.bz2.

SuggerimentoSuggerimento
 

Per maggiori informazioni, digitate man bzip2 e man bunzip2 al prompt della shell per leggere le pagine man di bzip2 e bunzip2.

14.3.2.2. Gzip e Gunzip

Per utilizzare gzip per comprimere un file, digitate il seguente comando al prompt della shell:

gzip filename

Il file viene compresso e salvato come filename.gz.

Per espandere il file compresso, digitate il seguente comando:

gunzip filename.gz

Il file filename.gz viene cancellato e sostituito con filename.

Potete utilizzare gzip per comprimere più file e directory contemporaneamente inserendo uno spazio tra i vari file:

gzip -r filename.gz file1 file2 file3 /usr/work/school 

Il comando soprastante comprime file1, file2, file3 e il contenuto della directory /usr/work/school (presupponendo che esista) e li colloca nel file filename.gz.

SuggerimentoSuggerimento
 

Per maggiori informazioni, digitate man gzip e man gunzip al prompt della shell per leggere le pagine man per gzip e gunzip.

14.3.2.3. Zip e Unzip

Per comprimere un file con zip, digitate il comando seguente:

zip -r filename.zip filesdir

In questo esempio filename.zip rappresenta il file che state creando e filesdir rappresenta la directory che volete inserire nel nuovo file zip. L'opzione -r specifica che volete includere tutti i file contenuti nella directory filesdir in modo ricorsivo.

Per estrarre il contenuto di un file zip, digitate il comando seguente:

unzip filename.zip

Potete utilizzare zip per comprimere più file e directory contemporaneamente inserendo uno spazio tra i vari file:

zip -r filename.zip file1 file2 file3 /usr/work/school 

Il comando soprastante comprime file1, file2, file3 e il contenuto della directory /usr/work/school (presupponendo che esista) e li colloca nel file filename.zip.

SuggerimentoSuggerimento
 

Per maggiori informazioni, digitate man zip e man unzip al prompt della shell per leggere le pagine man per zip e unzip.

14.3.3. Archiviazione dei file al prompt della shell

Un file tar è una raccolta di file e/o directory in un unico file. È un ottimo modo per creare copie di backup e archivi.

Alcune delle opzioni usate con tar sono:

Per creare un file tar, digitate:

tar -cvf filename.tar files/directories

Nell'esempio filename.tar rappresenta il file che state creando e files/directories rappresenta i file o le directory che volete inserire nel nuovo file archiviato.

Potete utilizzare tar per più file e directory contemporaneamente inserendo uno spazio tra i vari file:

tar -cvf filename.tar /home/mine/work /home/mine/school

Il comando soprastante colloca tutti i file nelle sottodirectory work e school di /home/mine in un nuovo file chiamato filename.tar nella directory corrente.

Per elencare il contenuto di un file tar, digitate:

tar -tvf filename.tar

Per estrarre il contenuto di un file tar, digitate:

tar -xvf filename.tar

Questo comando non rimuove il file tar, ma colloca copie del suo contenuto nella directory corrente.

Ricordate che il comando tar non comprime i file di default. Per creare un file compresso tar e bzip, utilizzate l'opzione -j:

tar -cjvf filename.tbz

I file tar compressi con bzip2 generalmente hanno l'estensione .tbz.

Questo comando genera un file archivio che poi comprime come file filename.tbz. Se decomprimete il file filename.tbz con il comando bunzip2, il file filename.tbz viene rimosso e ricollocato con filename.tar.

Potete inoltre espandere ed estrarre dall'archivio un file bzip tar con un solo comando:

tar -xjvf filename.tbz

Per creare un file compresso tar e gzip, utilizzate l'opzione -z:

tar -czvf filename.tgz

I file tar compressi con gzip generalmente hanno l'estensione .tgz.

Questo comando crea il file archivio filename.tar, quindi lo comprime come file filename.tgz. (Il file filename.tar non viene salvato.) Se decomprimete il file filename.tgz con il comando gunzip, il file filename.tgz viene rimosso e riposizionato con filename.tar.

Potete espandere un file gzip tar con un solo comando:

tar -xzvf filename.tgz

SuggerimentoSuggerimento
 

Digitate il comando man tar per ulteriori informazioni sul comando tar.