Esistono diversi modi per comprimere e decomprimere i file in Linux. Mentre ne abbiamo già discusso alcuni (qui e qui), ce ne sono molti che ancora non abbiamo. Quindi qui, in questo tutorial, discuteremo un'altra utilità della riga di comando di questo tipo.
Si chiama xz . Discuteremo le basi di questo strumento da riga di comando. Ma prima di entrare nel merito, vale la pena ricordare che tutti gli esempi qui presenti sono stati testati su una macchina Ubuntu 18.04 LTS.
Comando Linux xz
Come già accennato all'inizio, il comando xz in Linux consente di comprimere e decomprimere i file. Di seguito è riportata la sua sintassi:
xz [option...] [file...]
Ed ecco cosa ha da dire a riguardo la pagina man:
xz is a general-purpose data compression tool with command line syntax similar to gzip(1)
and bzip2(1). The native file format is the .xz format, but the legacy .lzma format used
by LZMA Utils and raw compressed streams with no container format headers are also supported.
xz compresses or decompresses each file according to the selected operation mode. If no files
are given or file is -, xz reads from standard input and writes the processed data to
standard output. xz will refuse (display an error and skip the file) to write compressed data
to standard output if it is a terminal. Similarly, xz will refuse to read compressed data
from standard input if it is a terminal.
Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti un'idea migliore di come funziona xz.
Q1. Come utilizzare il comando xz?
L'utilizzo di base è abbastanza semplice. Basta passare il nome del file (che deve essere compresso) come argomento di input a xz. Ecco un esempio:
xz file.txt
Sul mio sistema, il suddetto comando ha prodotto il seguente file come output.
file.txt.xz
Quindi puoi vedere il comando xz compresso file.txt. Vale la pena ricordare che l'operazione sostituisce il file originale (file.txt in questo caso) con la versione compressa.
Q2. Come fare in modo che xz conservi anche il file originale?
Come accennato nella sezione precedente, il comando xz sostituisce il file originale con la sua versione compressa. Tuttavia, se lo desideri, puoi forzare xz a conservare anche il file originale. Questo può essere fatto usando l'opzione -k della riga di comando.
Ad esempio:
xz -k file.txt
Quindi questa volta troverai sia file.txt che file.txt.xz nella directory di lavoro corrente.
Q3. Come comprimere più file?
Questo è molto semplice. Basta passare i nomi come argomenti di input a xz.
Ad esempio:
xz file1.txt file2.txt
Questo comando comprimerà entrambi questi file in una volta sola.
Q4. Come decomprimere i file .xz?
Per decomprimere i file .xz, utilizzare l'opzione della riga di comando -d. Ad esempio:
xz -d file.txt.xz
Questo comando produrrebbe file.txt nella directory di lavoro corrente.
Q5. Come stampare xz informazioni sui file compressi?
Questo può essere fatto usando l'opzione della riga di comando -l. Ad esempio:
xz -l file.txt.xz
Questo comando ha prodotto le seguenti informazioni nel mio caso:
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 96 B 37 B 2.595 CRC64 file.txt.xz
Q6. Come specificare un diverso formato di compressione/decompressione?
Questo può essere fatto usando l'opzione della riga di comando -F. Per utilizzare questa opzione, tuttavia, è necessario comprendere quanto segue:
-F format, --format=format
Specify the file format to compress or decompress:
auto This is the default. When compressing, auto is equivalent to xz. When decompressing, the format of the input file
is automatically detected. Note that raw streams (created with --format=raw) cannot be auto-detected.
xz Compress to the .xz file format, or accept only .xz files when decompressing.
lzma, alone
Compress to the legacy .lzma file format, or accept only .lzma files when decompressing. The alternative name alone
is provided for backwards compatibility with LZMA Utils.
raw Compress or uncompress a raw stream (no headers). This is meant for advanced users only. To decode raw streams, you
need use --format=raw and explicitly specify the filter chain, which normally would have been stored in the container
headers.
Puoi quindi utilizzare uno qualsiasi dei seguenti formati:'auto', 'xz', 'lzma' e 'raw'.
Q7. Come fare in modo che xz visualizzi l'indicatore di avanzamento?
Ciò può essere reso possibile utilizzando l'opzione della riga di comando -v. Ecco un esempio:
Conclusione
Mentre abbiamo discusso una manciata di opzioni della riga di comando xz in questo tutorial, ce ne sono molte altre. Una volta che hai finito di capirli e di esercitarti, vai alla pagina man dello strumento per saperne di più.