Archiviazione e compressione in Linux
Indice
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.