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:
zindica un file compresso congzip(j, invece, compresso conbzip2);xindica estrazione;findica il nome del file da decomprimere.
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 credits: , Man with Briefcase (Work Series), CC by-nc-nd, 2008.