In questa puntata vediamo come creare archivi compressi in Linux e come estrarne il contenuto. Il comando protagonista è tar.
Cos’È tar
tar non fa altro che creare un unico file, con una struttura al suo interno, che contiene file e directory: di fatto un solo file ricavato da una porzione di file system. Serviva in origine per scrivere su nastro, e infatti il nome sta per tape archive. Di per sé tar non comprime: per farlo si appoggia a programmi esterni, che si attivano con un’opzione aggiuntiva (lo vediamo fra poco).
Creare un archivio
Lavoriamo in una cartella di prova con qualche directory dentro. Per creare un archivio della cartella dir1 si usa l’opzione c (create) e l’opzione f (file), che specifica il nome del file di archivio. L’ultimo argomento è la cartella (o il file) da archiviare:
tar -cf dir1.tar dir1
Dopo un po’, secondo la dimensione, torniamo al prompt. Con ls vediamo il nuovo file dir1.tar:
ls
Vedere il contenuto
Per vedere cosa c’è dentro un archivio si usa l’opzione t (list), sempre insieme a f per indicare il file:
tar -tf dir1.tar
Aggiungere all’archivio
Con l’opzione u (update) si aggiorna un archivio aggiungendo materiale. Aggiungiamo la cartella dir3 a dir1.tar:
tar -uf dir1.tar dir3
Se ora controlliamo il contenuto con tar -tf dir1.tar vediamo anche la cartella dir3.
Estrarre
Creiamo una cartella dir2 e estraiamo l’archivio al suo interno. Normalmente l’estrazione avviene nella cartella in cui ci troviamo, ma con l’opzione -C si indica la destinazione. Per estrarre servono x (extract) e f per il nome dell’archivio:
mkdir dir2
tar -xf dir1.tar -C dir2
Dentro dir2 ritroviamo le cartelle dir1 e dir3 che avevamo archiviato:
ls dir2
Compressione
Come detto, tar da solo non comprime: serve un’opzione in più. Compattiamo dir2 in un archivio compresso con gzip, con l’opzione -z. L’estensione è .tar.gz: la prima indica che è un tar, la seconda che è compresso con gzip.
tar -czf dir2.tar.gz dir2
Un altro sistema di compressione è bzip2, che si attiva con -j e ha estensione .tar.bz2:
tar -cjf dir2.tar.bz2 dir2
Per confronto, creiamo anche un tar non compresso:
tar -cf dir2.tar dir2
Per estrarre un archivio compresso si usa lo stesso comando di prima, con l’opzione corrispondente (nelle versioni recenti di tar la compressione viene comunque riconosciuta da sola):
tar -xzf dir2.tar.gz
tar -xjf dir2.tar.bz2
Confrontare le dimensioni
Con ls -l confrontiamo gli archivi che abbiamo creato:
ls -l
In questo caso la differenza di dimensione è minima, perché i file di esempio hanno un contenuto di testo casuale. I vari sistemi di compressione hanno rese diverse a seconda del contenuto da comprimere, quindi ti invito a sperimentare nei vari casi.
In sintesi
- tar -cf archivio.tar cartella: crea un archivio;
- tar -tf archivio.tar: ne mostra il contenuto;
- tar -uf archivio.tar altro: aggiunge materiale;
- tar -xf archivio.tar -C destinazione: estrae;
- aggiungendo z (gzip) o j (bzip2) si comprime e si decomprime.
Link e risorse
- il video su YouTube
- esempi e comandi della puntata su GitHub
- Manuale di GNU tar — il manuale completo
- Manuale di gzip
- bzip2(1) — la man page
- XZ Utils — sito ufficiale
Sostieni il canale
PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!
