Archiviazione e compressione in Linux

Tutto, o quasi, sull’archiviazione e la compressione in Linux.

Questo è un post tecnico di 9 anni fa. Le istruzioni potrebbero non essere più valide.

Ormai con Ubuntu comprimere una cartella o più file in un archivio è una cosa semplicissima: clic destro e via. Ma sicuramente chi usa GNU/Linux non si ferma all’immediatezza dell’operazione, ma vuole andare a fondo e capire cosa succede quando si fa clic sulla voce di menu Crea archivio…

Anzitutto bisogna distinguere tra archiviazione e compressione. L’archiviazione consente di raccogliere senza comprimerli tanti file in uno unico, in modo da consentire una trasportabilità più comoda e veloce (una cosa è trasportare diecimila file che pesano 5 mega e una cosa è trasportare un file che pesa 5 mega). La compressione, invece, rende addirittura più piccolo il file d’archivio e dunque assicura una velocità di trasferimento ancora maggiore.

Archiviare file e cartelle

Archiviare i file (mettere tanti file in un unico file) è un po’ come metterli in una cartella, col vantaggio però di avere come risultato un file singolo. Lo strumento usato su Linux per fare questa operazione è tar, un acronimo di “tape archive”. Un aspetto importante di tar è che con l’archiviazione non si perdono le informazioni dei file, come data e ora, utente, gruppo, permessi e struttura delle cartelle.

La sintassi per archiviare è la seguente:

tar cf archivio.tar file1 file2 file3

con cui si riuniscono file1, file2 e file3 nell’unico file archivio.tar. La lettera c indica “crea”, mentre f sta per “file”.

Per archiviare un’intera cartella la sintassi è la stessa:

tar cf archivio.tar directory

Per estrarre i file la sintassi è:

tar xf archivio.tar

Comprimere i file

I file possono essere compressi in Linux con due strumenti: gzip e bzip2. La differenza tra i due è che bzip2 restituisce file più piccoli (e dunque richiede maggiore potenza di calcolo). La sintassi è la stessa per entrambi (cambiando ovviamente il comando):

gzip file1

che produce il file1.gz e

bzip2 file1

che produce il file1.bz2

Fate attenzione al fatto che questi due strumenti “trasformano” il file, nel senso che cancellano quello originale, lasciando solo la copia compressa.

Decomprimere i file compressi

La decompressione si effettua rispettivamente con

gunzip file1.gz

e

bunzip2 file1.bz2

eliminando anche qui il file compresso e lasciando solo quello originale.

Comprimere e decomprimere gli archivi tar

Anche gli archivi .tar possono essere a loro volta compressi come un qualunque altro normalissimo file. La sintassi è la stessa identica e quindi i passaggi sono due: archiviazione dei singoli file e successiva compressione dell’archivio.

tar cf archivio.tar file1 file2 file3
gzip archivio.tar

che restituisce il file archivio.tar.gz, oppure

bzip2 archivio.tar

che restituisce il file archivio.tar.bz2

Si possono anche dare i due comandi in un’unica riga:

tar cf - file1 file2 file3 | gzip -c > archivio.tar.gz

oppure più comodamente, per gzip:

tar czf archivio.tar.gz file1 file2 file3

per bzip2:

tar cjf archivio.tar.gz file1 file2 file3

Per la decompressione, però, è sufficiente un solo comando. Per il primo file:

tar zxf archivio.tar.gz

Per il secondo:

tar jxf archivio.tar.bz2

Le opzioni significano nell’ordine: z è un file compresso con gzip (j invece compresso con bzip2), x estrai, f indica il nome del file.

Si ponga attenzione al fatto che con gzip e bzip2 non è possibile comprimere più file in un’unico: ecco perché è necessario passare da tar prima di comprimere più file assieme.

Un’ultima nota sulle estensioni. Un file .tar.gz può presentarsi anche con l’estensione .tgz, mentre uno .tar.bz2 anche come.tbz2. Ma potrebbero anche non avere alcuna estensione! Se vi dovesse capitare un file compresso senza estensione, è sufficiente dare

file nome-file-misterioso

per capire di che tipo si tratti.

Photo courtesy: holly_northrop, Man with Briefcase (Work Series), CC by-nc-nd.

Autore: Aldo Latino

Aldo Latino usa con entusiasmo Linux nella distribuzione Ubuntu, è un appassionato di WordPress e si diletta a fare il blogger. Ha anche una lista dei desideri. Per altre informazioni visita la sua .

4 pensieri riguardo “Archiviazione e compressione in Linux”

  1. Una piccola osservazione. Il comando tar accetta le opzioni senza il segno “-” e lo fa per ragioni storiche. Suggerisco di usare sempre il segno “-“, anche se non necessario, sia per non creare confusione tra opzioni e parametri, che per uniformità con tutti gli altri comandi Linux.

  2. Post molto interessante!
    Aggiungo una piccolissima osservazione anche io…
    Fra i parametri dei comandi può tornare utile aggiungere la lettera “v”, che sta per verbose, che stampa a schermo ciò che il programma sta facendo…
    Io mi trovo comodo nell’usarla.

    E concordo anche con malex che, soprattutto per chi è alle “prime armi”, è meglio usare la sintassi con il segno meno “-” davanti ai parametri.

I commenti sono chiusi