Linux: comando “tar” per comprimere e decomprimere archivi

INFORMATICA, LINUX, TUTORIAL

Se sei un utente Linux, probabilmente hai incontrato il comando tar almeno una volta. Questo strumento, il cui nome deriva dall’abbreviazione di “tape archive”, è essenziale per la gestione di file e directory in ambiente Unix-like. Utilizzato principalmente per creare e gestire archivi, il comando tar è imprescindibile per operazioni di backup, distribuzione di software e molti altri scenari.

Utilizzo Base del Comando ‘tar’

Per creare un archivio tar, si usa l’opzione -c (create) insieme a -f per specificare il nome del file di archivio. Ad esempio:

tar -cf archivio.tar file1 file2 directory1

Questo comando creerà un archivio chiamato archivio.tar contenente i file file1, file2 e la directory directory1.

Per estrarre i contenuti di un archivio tar, si utilizza l’opzione -x (extract):

tar -xf archivio.tar

Questo comando estrarrà tutti i file e le directory contenuti in archivio.tar nella directory corrente.

Compressione con ‘tar’

Per creare un archivio compresso con gzip, si usa l’opzione -z insieme a -c e -f:

tar -czf archivio.tar.gz file1 file2 directory1

Questo comando creerà un archivio compresso chiamato archivio.tar.gz. Per estrarre un archivio compresso con gzip, si utilizza:

tar -xzf archivio.tar.gz

In maniera analoga, per compressioni con bzip2, si utilizza l’opzione -j:

tar -cjf archivio.tar.bz2 file1 file2 directory1

Per estrarre un archivio compresso con bzip2:

tar -xjf archivio.tar.bz2

Altre Utilità del Comando ‘tar’

tar offre molte altre opzioni utili. Ad esempio, per visualizzare il contenuto di un archivio senza estrarlo, si usa -t:

tar -tf archivio.tar

È possibile escludere file specifici durante la creazione di un archivio con l’opzione --exclude:

tar -cf archivio.tar --exclude='*.log' /home/utente/documenti

In sintesi, il comando tar è un potente strumento che ogni utente Linux dovrebbe conoscere. La sua flessibilità e la vasta gamma di opzioni lo rendono ideale per molte operazioni legate alla gestione degli archivi.

Sintassi di Base e Opzioni Comuni

Comprendere la sintassi di tar può sembrare complesso all’inizio, ma diventa logico una volta capito il principio. Il comando base per creare un archivio è:

tar -cf nome_archivio.tar file_o_directory

Ad esempio:

tar -cf backup.tar /home/utente/documenti

Questo comando creerà un archivio chiamato backup.tar contenente i contenuti della cartella /home/utente/documenti.

Opzioni di Compressione

Le principali opzioni di compressione di tar sono:

  • -z per usare gzip
  • -j per usare bzip2
  • -J per usare xz
tar -czf backup.tar.gz /home/utente/documenti tar -cjf backup.tar.bz2 /home/utente/documenti tar -cJf backup.tar.xz /home/utente/documenti

Estrazione degli Archivi

L’estrazione è semplice:

tar -xf backup.tar

Per estrarre gli archivi compressi, aggiungere l’opzione corrispondente:

tar -xzf backup.tar.gz
tar -xjf backup.tar.bz2
tar -xJf backup.tar.xz

Altre Opzioni Utili

Il comando tar ha molte altre opzioni:

  • Visualizzare il contenuto senza estrarlo:
    tar -tf backup.tar
  • Verificare un archivio:
    tar -tvf backup.tar
  • Escludere file o directory specifici:
    tar -cf backup.tar --exclude='*.log' /home/utente/documenti

Con il comando tar, si può gestire anche file di grandi dimensioni con l’opzione --multi-volume e decomprimere archivi direttamente su server remoti tramite SSH usando -C.

Creare un Archivio con ‘tar’ e l’opzione ‘-cvf’

tar -cvf è una delle combinazioni più utilizzate per creare rapidamente archivi:

  • -c: creare un nuovo archivio
  • -v: modalità verbosa
  • -f: specificare il nome del file di archivio
tar -cvf documenti.tar /home/utente/documenti

Il comando assicura che l’archivio sia creato e il processo sia documentato nel terminale.

Opzioni di Compressione e Estrazione:

tar -czvf documenti.tar.gz /home/utente/documenti tar -xzvf documenti.tar.gz tar -cjvf documenti.tar.bz2 /home/utente/documenti tar -xjvf documenti.tar.bz2 tar -cJvf documenti.tar.xz /home/utente/documenti tar -xJvf documenti.tar.xz

È possibile escludere specifici file o directory durante la creazione di un archivio usando l’opzione --exclude o gestire file di grandi dimensioni con l’opzione --multi-volume.

tar supporta anche l’estrazione diretta di file su server remoti attraverso SSH:

tar -cvf - /home/utente/documenti 
| ssh utente@remoto 'tar -xvf - -C /destinazione'

La padronanza del comando tar è essenziale per ogni amministratore di sistema e utente Linux avanzato, fornendo una soluzione completa e flessibile per la gestione degli archivi.

Estrazione di File con l’opzione ‘-xvf’

Per estrarre un archivio con -xvf:

tar -xvf archivio.tar

Estrai archivi compressi con:

tar -xzvf archivio.tar.gz
tar -xjvf archivio.tar.bz2
tar -xJvf archivio.tar.xz

Per estrarre l’archivio in una directory specifica:

tar -xvf archivio.tar -C /percorso/destinazione

Estrarre solo file specifici:

tar -xvf archivio.tar nomefile1 nomefile2

Gestione archivi multipli:

tar -xvf archivio.part --multi-volume

Comprimere Archivi con ‘tar’ usando ‘-z’ per gzip e ‘-j’ per bzip2

Per creare un archivio compresso con gzip:

tar -czvf archivio.tar.gz /percorso/directory_o_file

Per creare un archivio compresso con bzip2:

tar -cjvf archivio.tar.bz2 /percorso/directory_o_file

Decomprimere archivi:

tar -xzvf archivio.tar.gz
tar -xjvf archivio.tar.bz2

Usare --exclude per escludere file o directory:

tar --exclude='*.log' -czvf archivio.tar.gz /percorso/directory_o_file

tar combinato con -z e -j è fondamentale per comprimere e decomprimere archivi su Linux.

Esempi di Utilizzo in Vari Scenari di Backup e Ripristino

Per il backup di una directory:

tar -cvf backup_documenti.tar /home/utente/documenti

Per comprimere l’archivio:

tar -czvf backup_documenti.tar.gz /home/utente/documenti

Backup Incrementali e Differenziali

Per creare un backup incrementale:

tar --listed-incremental=/percorso/file_snap.snar -czvf backup_incrementale.tar.gz /home/utente/documenti

Ripristino dei Dati Utilizzando ‘tar’

Per estrarre un archivio compresso:

tar -xzvf backup_documenti.tar.gz

Per specificare una directory di destinazione:

tar -xzvf backup_documenti.tar.gz -C /percorso/destinazione

Automazione dei Backup con Script

Esempio di script di backup giornaliero:

#!/bin/bash
data=$(date +\%Y-\%m-\%d)
tar -czvf /backup/backup_documenti_\$data.tar.gz /home/utente/documenti

Utilizzare cron per automatizzare l’esecuzione dello script.

 

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form