Comando unxz in Linux: decomprimere .xz e conservare il compresso

unxz decomprime i file .xz e normalmente rimuove il compresso dopo aver ripristinato il file. Usa -k per mantenere anche l’input oppure -c per scrivere i dati decompressi allo standard output.

Il comando equivale a xz -d. Se parti da dump.sql.xz, ottieni dump.sql; se parti da backup.tar.xz, rimane invece un archivio tar, i cui membri vanno estratti separatamente. La guida a xz spiega come preparare e verificare il compresso.

Sintassi e condizioni iniziali

unxz [options] file.xz [file.xz...]

Sostituisci i segnaposto con opzioni e percorsi reali. Controlla unxz --version e man unxz sul sistema in uso. Prepara un compresso leggibile, spazio sufficiente per il ripristino e una directory scrivibile. Il file decompresso può occupare molto più spazio dell’input.

Gli esempi seguenti sono alternative. Riparti da una copia del compresso e da un nome di uscita libero per confrontarli: il comando normale elimina l’input dopo il successo, mentre -k lascia anche un output che può impedire la prova successiva. Se il nome di destinazione esiste già, XZ normalmente segnala un errore e salta il file; controlla le copie prima di scegliere un’altra directory o un altro nome.

Ripristino normale e conservazione del compresso

Ripristino normale. Questo comando ricrea dump.sql e, dopo il successo, rimuove normalmente dump.sql.xz:

unxz dump.sql.xz

Mantenere anche l’input. Con -k rimangono sia il compresso sia il risultato:

unxz -k dump.sql.xz

Non usare automaticamente -f per superare un conflitto: può eliminare un file di destinazione esistente. Conserva una copia valida dell’input fino a quando hai controllato il ripristino, specialmente se il contenuto è importante.

Anteprima di testo tramite standard output

Con -c il compresso rimane e i dati decompressi vengono inviati allo standard output. Se sai che il contenuto è testo, puoi mostrarne l’inizio con head:

unxz -c notes.txt.xz | head

Head mostra normalmente le prime dieci righe e poi chiude la pipe. Il comando è utile per un’anteprima senza creare il file completo, ma non dimostra che l’intero flusso sia integro: unxz può fermarsi prima della fine e segnalare un errore di scrittura perché il destinatario ha chiuso la pipe. Il successo di head non equivale al successo della decompressione completa.

Per controllare tutto il compresso usa xz -t notes.txt.xz e valuta subito lo stato di uscita. Evita di inviare dati binari o enormi quantità di testo direttamente al terminale; scegli un file di uscita controllato o un programma adatto al contenuto.

Salvare con un altro nome e verificare il risultato

Per questo esempio prepara un note.txt.xz contenente testo noto, per esempio comprimendo una copia di prova con xz, e assicurati che restored.txt non esista. La redirezione salva l’output mentre il compresso rimane:

unxz -c note.txt.xz > restored.txt
ls -l restored.txt

Unxz normalmente termina senza messaggi quando riesce. Ls mostra il nome, la dimensione e altri attributi del file; valori e impaginazione dipendono dall’ambiente. L’elenco non confronta i dati e non dimostra che il ripristino sia completo.

In una shell POSIX puoi leggere lo stato con echo $? subito dopo unxz, prima di ls o di altri comandi. In XZ, 0 indica successo, 1 un errore e 2 un avvertimento senza errori veri e propri. Dopo ls lo stato riguarda ls. Se compare un errore, non trattare un eventuale file parziale come un risultato valido.

La shell può troncare restored.txt prima che unxz inizi: la protezione di XZ contro gli output esistenti non protegge la redirezione. Scegli un nome nuovo e non usare lo stesso percorso per input e output. Confronta il ripristinato con la sorgente corretta, per esempio byte per byte; un valore di controllo, o checksum, è utile se viene confrontato con quello della copia valida usando lo stesso metodo.

In una prova locale del 3 novembre 2026 con unxz di XZ Utils 5.8.3 per Git for Windows, il ripristino normale ha ricreato i byte attesi rimuovendo il compresso; -k e -c lo hanno conservato. Sono stati verificati anche l’esempio restored.txt, il test completo silenzioso, il rifiuto di un output già presente e il solo ripristino del tar senza estrarre i membri. Su un testo più lungo, head ha mostrato dieci righe e unxz ha restituito stato 1 dopo la chiusura della pipe, mentre head aveva stato 0. Queste prove Windows non verificano metadati Linux, sicurezza di dati non affidabili o prestazioni.

Opzioni principali

Opzione Funzione e limite
-k Conserva il file compresso di input.
-c Invia i dati decompressi allo standard output e conserva l’input.
-t Verifica l’integrità del compresso senza creare un file ripristinato.
-f Può eliminare un file di destinazione esistente prima del ripristino.
-v Mostra informazioni più dettagliate sull’elaborazione.

Archivi tar.xz, errori e script

Unxz rimuove lo strato di compressione da backup.tar.xz, lasciando backup.tar senza creare automaticamente le directory interne. Con tar puoi prima elencare i membri del compresso con tar -tJf backup.tar.xz e poi estrarli con tar -xJf, specificando l’archivio e una destinazione controllata. Se hai già il tar decompresso, usa invece tar -xf backup.tar dopo averne verificato i percorsi.

Se il ripristino fallisce, leggi il messaggio e controlla spazio, permessi, destinazione e integrità dell’input. Riparti da una copia valida in una directory separata invece di forzare sovrascritture. La decompressione riuscita non dimostra autenticità o sicurezza del contenuto: non eseguirlo automaticamente.

Per gli script, il manuale ufficiale raccomanda il nome xz con l’operazione esplicita, ad esempio xz -d o xz -dc, al posto degli alias unxz e xzcat. Controlla lo stato di ogni operazione prima di usare il risultato.

Domande frequenti

Che cosa rimane dopo unxz backup.tar.xz?

Rimane normalmente backup.tar. I membri interni vanno poi estratti con tar in una destinazione controllata; in alternativa tar può leggere direttamente il tar.xz.

Vedere le prime righe con head conferma il ripristino?

No. È soltanto un’anteprima che può interrompersi prima della fine. Verifica il compresso completo con xz -t e confronta i dati ripristinati con una sorgente valida quando il contenuto è importante.

Documentazione ufficiale

Il manuale ufficiale di XZ e unxz descrive alias, opzioni e stati di uscita. Consulta anche il manuale della versione installata.