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.