Introduzione

Il comando tar viene utilizzato per creare archivi tar convertendo un gruppo di file in un archivio. Ha anche la capacità di estrarre archivi tar, visualizzare un elenco dei file inclusi nell'archivio, aggiungere file aggiuntivi a un archivio esistente, nonché vari altri tipi di operazioni.

Tar è stato originariamente progettato per la creazione di archivi di file di archivio su nastro magnetico che è il motivo per cui ha il suo nome “ Tape ARchive”.

In questo tutorial, ti mostreremo come utilizzare il comando tar per estrarre, elencare e creare archivi tar attraverso esempi pratici e spiegazioni dettagliate delle opzioni tar più comuni.

Sintassi del comando Tar

Esistono due versioni di tar, tar BSD e tar GNU con alcune differenze funzionali tra. La maggior parte dei sistemi Linux viene fornita con GNU tar preinstallato di default.

La sintassi generale per il comando tar è la seguente:

tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]

OPERATION- È consentito e richiesto un solo argomento operazione. Le operazioni utilizzate più frequentemente sono:

  • --create( -c) - Crea un nuovo archivio tar.
  • --extract( -x): Estrae l'intero archivio o uno o più file da un archivio.
  • --list( -t) - Visualizza un elenco dei file inclusi nell'archivio

OPTIONS - Le operazioni utilizzate più frequentemente sono:

  • --verbose( -v) - Mostra i file che vengono elaborati dal comando tar.
  • --file=archive=name( -f archive-name) - Specifica il nome del file di archivio.
  • ARCHIVE_NAME - Il nome dell'archivio.
  • FILE_NAME(s)- Un elenco separato da spazi di nomi di file da estrarre dall'archivio. Se non fornito, viene estratto l'intero archivio.

Quando si eseguono comandi tar, è possibile utilizzare la forma lunga o breve delle operazioni e delle opzioni tar. I moduli lunghi sono più leggibili mentre i moduli brevi sono più veloci da digitare. Le opzioni di forma lunga sono precedute da un doppio trattino (--). Le opzioni di forma breve sono precedute da un singolo trattino (-) che può essere omesso.

Creazione di Tar Archive

Tar supporta una vasta gamma di programmi di compressione, come gzip, bzip2, lzip, lzma, lzop, xz e compress. Quando si creano archivi tar compressi, è una convenzione accettata aggiungere il suffisso del compressore al nome del file di archivio. Ad esempio, se un archivio è stato compresso con gzip esso, dovrebbe essere denominato archive.tar.gz.

Per creare un archivio tar utilizzare l'opzione -c seguita dall'opzione -f e il nome dell'archivio.

Ad esempio, per creare un archivio di nome archive.tar composto dai file di nome file1, file2, file3, si dovrebbe eseguire il seguente comando:

tar -cf archive.tar file1 file2 file3

Ecco il comando equivalente che utilizza le opzioni di formato lungo:

tar --create --file=archive.tar file1 file2 file3

È possibile creare archivi dal contenuto di una o più directory o file. Per impostazione predefinita, le directory vengono archiviate in modo ricorsivo a meno che non venga specificata l'opzione --no-recursion.

L'esempio seguente creerà un archivio denominato user_backup.tar della directory /home/user:

tar -cf backup.tar /home/user

Utilizzare l'opzione -v se si desidera vedere i file in fase di elaborazione.

Creazione di Tar Gz Archive

Gzip è l'algoritmo più popolare per la compressione di file tar. Quando si comprimono gli archivi tar con gzip, il nome dell'archivio dovrebbe terminare con tar.gz o tgz.

L'opzione -z dice a tar di comprimere l'archivio usando l'algoritmo gzip mentre viene creato. Ad esempio, per creare un archivio tar.gz da determinati file, utilizzare il comando seguente:

tar -czf archive.tar.gz file1 file2

Creazione di Tar Bz2 Archive

Un altro algoritmo popolare per la compressione dei file tar è bzip2. Quando si comprimono gli archivi tar con bzip2, il nome dell'archivio deve terminare con tar.bz2 o tbz.

Quando l'opzione -j è specificata tar utilizzerà l'algoritmo bzip2 per comprimere l'archivio. Il seguente comando creerà un archivio tar.bz2 dei file indicati:

tar -cjf archive.tar.bz2 file1 file2

Elenco degli archivi di tar

Se utilizzato con l'opzione --list( -t), il comando tar elencherà il contenuto di un archivio tar senza estrarlo. Il comando sotto, elencherà il contenuto del file archive.tar:

tar -tf archive.tar

L'output elencherà i nomi di tutti i file nell'archivio:

file1
file2
file3

Per ottenere maggiori informazioni come il proprietario del file , la dimensione del file, il timestamp usa l'opzione --verbose( -v):

tar -tvf archive.tar
-rw-r--r-- noviello/users       0 2018-09-08 01:19 file1
-rw-r--r-- noviello/users       0 2018-09-08 01:19 file2
-rw-r--r-- noviello/users       0 2018-09-08 01:19 file3

Estrazione di Tar Archive

La maggior parte dei file archiviati in Linux sono archiviati e compressi utilizzando un formato tar o tar.gz. È importante sapere come estrarre questi file dalla riga di comando.

Per estrarre un archivio tar utilizzare l'opzione --extract( -x) seguita dal nome dell'archivio:

tar -xf archive.tar

È anche comune aggiungere l'opzione -v per stampare i nomi dei file da estrarre.

tar -xvf archive.tar

Estrarre Tar Archive in una directory diversa

Per impostazione predefinita, tar estrarrà il contenuto dell'archivio nella directory di lavoro corrente . Utilizzare l'opzione --directory( -C) per estrarre i file di archivio in una directory specifica:

Ad esempio, per estrarre i contenuti dell'archivio nella directory /opt/files, è possibile utilizzare:

tar -xf archive.tar -C /opt/files

Estrazione di Tar Gz e Tar Bz2 Archives

Quando si estraggono archivi compressi come tar.gz o tar.bz2 non è necessario specificare un'opzione di decompressione. Il comando è lo stesso dell'estrazione con il comando tar:

tar -xf archive.tar.gz
tar -xf archive.tar.bz2

Estrarre file specifici da un archivio Tar

A volte invece di estrarre l'intero archivio, potrebbe essere necessario estrarre solo pochi file da esso.

Per estrarre uno o più file specifici da un archivio tar, aggiungi un elenco separato da spazi di nomi di file da estrarre dopo il nome dell'archivio:

tar -xf archive.tar file1 file2

Durante l'estrazione dei file, è necessario fornire i nomi esatti incluso il percorso, come stampato da --list( -t).

L'estrazione di una o più directory da un archivio equivale all'estrazione di file:

tar -xf archive.tar dir1 dir2

Se si tenta di estrarre un file che non esiste, verrà visualizzato un messaggio di errore simile al seguente:

tar -xf archive.tar README
tar: README: Not found in archive
tar: Exiting with failure status due to previous errors

Estrarre i file da un archivio Tar usando Wildcard

Per estrarre i file da un archivio basato su un modello wildcard, utilizzare l'opzione --wildcards e citare il modello per impedire alla shell di interpretarlo.

Ad esempio, per estrarre file il cui nome termina in .js (file Javascript), è possibile utilizzare:

tar -xf archive.tar --wildcards '*.js'

Aggiunta di file all'archivio tar esistente

Per aggiungere file o directory a un archivio tar esistente, utilizzare l'operazione --append( -r).

Ad esempio, per aggiungere un file denominato newfile in archive.tar, eseguire:

tar -rvf archive.tar newfile

Rimozione di file da un archivio Tar

Utilizzare l'operazione --delete per rimuovere i file da un archivio.

L'esempio seguente mostra come rimuovere il file file1 da archive.tar ,:

tar --delete -f archive.tar file1

Conclusione

Gli usi più comuni del comando tar sono per creare ed estrarre un archivio tar. Quando si estrae un archivio, utilizzare il comando tar -xf seguito dal nome dell'archivio e per crearne uno nuovo, utilizzare tar -czf e il nome dell'archivio.

Per ulteriori informazioni sul comando tar, consultare la pagina della documentazione di Gnu tar.