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.