Introduzione

Il comando tar consente di creare ed estrarre archivi tar. Supporta una vasta gamma di programmi di compressione come gzip, bzip2, lzip, lzma, lzop, xz e compress.

Xz è un algoritmo popolare per la compressione di file basato sull'algoritmo LZMA. Per convenzione, il nome di un archivio tar compresso con xz termina con .tar.xz o .txz .

Questo articolo spiega come utilizzare il comando tar per estrarre (o decomprimere) archivi .tar.xz o .txz .

Installare l'utility tar

L'utilità tar è preinstallata per impostazione predefinita sulla maggior parte delle distribuzioni Linux e macOS.

Per installare l'utility tar su CentOS, Red Hat e Fedora digitare il seguente comando:

 sudo dnf install tar

Per installare l'utility tar su Debian, Ubuntu, Linux Mint e derivate:

 sudo apt-get install tar

Estrare il file tar.xz

Per estrarre un file tar.xz, invoca il comando tar con l'opzione --extract(-x) e specifica il nome del file di archivio dopo l'opzione -f:

tar -xf archive.tar.xz

tar rileva automaticamente il tipo di compressione ed estrae l'archivio. Lo stesso comando può essere utilizzato per estrarre archivi tar compressi con altri algoritmi, come .tar.gz o .tar.bz2.

Se la riga di comando non fa per te, puoi utilizzare il File manager della GUI. Per estrarre (decomprimere) un file tar.xz è sufficiente fare clic con il tasto destro del mouse sul file che si desidera estrarre e selezionare “Estrai”. Gli utenti Windows hanno bisogno di uno strumento chiamato 7zip per estrarre i file tar.xz.

Per un output più dettagliato, utilizzare l'opzione -v. Questa opzione indica a tar di visualizzare i nomi dei file estratti sul terminale.

tar -xvf archive.tar.xz

Per impostazione predefinita, tar estrae il contenuto dell'archivio nella directory di lavoro corrente. Per estrarre i file di archivio in una directory specifica, utilizzare il flag --directory(-C).

L'esempio seguente mostra come estrarre i contenuti dell'archivio nella directory /home/noviello/files:

tar -xf archive.tar.xz -C /home/noviello/files

Estrarre file specifici da un file tar.xz

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

tar -xf archive.tar.xz file1 file2

Quando si estraggono i file, è necessario fornire i nomi esatti incluso il percorso, visualizzabili quando tar viene invocato con l'opzione --list(-t).

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

tar -xf archive.tar.xz dir1 dir2

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

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

L'opzione --wildcards consente di estrarre i file da un file tar.xz in base a un modello wildcards. Il modello deve essere citato per impedire alla shell di interpretarlo.

Ad esempio, per estrarre solo i file i cui nomi finiscono .png, dovresti usare:

tar -xf archive.tar.xz --wildcards '*.png'

Estrarre il file tar.xz da stdin

Quando si estrae un file tar.xz compresso leggendo l'archivio dall'input standard (di solito tramite piping), è necessario specificare l'opzione di decompressione. L'opzione -J dice a tar che il file è compresso con xz.

Nell'esempio seguente stiamo scaricando il kernel Linux usando il comando wget e reindirizzando il suo output al comando tar:

wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz -O - | sudo tar -xj

Se non specifichi un'opzione di decompressione, tar ti mostrerà quale opzione dovresti usare:

tar: Archive is compressed. Use -J option
tar: Error is not recoverable: exiting now

Elencare i contenuti del file tar.xz

Per elencare il contenuto di un file tar.xz, utilizzare l'opzione --list(-t):

tar -tf archive.tar.xz

L'output sarà simile al seguente:

file1
file2
file3

Se aggiungi l'opzione --verbose(-v), verranno stampate ulteriori informazioni, come il proprietario, la dimensione del file, il timestamp, etc:

tar -tvf archive.tar.xz
-rw-r--r-- noviello/users       0 2020-01-05 03:11 file1
-rw-r--r-- noviello/users       0 2020-01-05 03:11 file2
-rw-r--r-- noviello/users       0 2020-01-05 03:11 file3

Conclusione

Il file tar.xz è un archivio Tar compresso con xz. Per estrarre un file tar.xz, utilizzare il comando tar -xf, seguito dal nome dell'archivio.