Tutorial del comando xz de Linux para principiantes (7 ejemplos)
Hay varias formas de comprimir y descomprimir archivos en Linux. Aunque ya hemos hablado de algunas(aquí y aquí), hay muchas que aún no hemos tratado. Así que aquí, en este tutorial, hablaremos de otra de esas utilidades de línea de comandos.
Se llama xz. Hablaremos de los fundamentos de esta herramienta de línea de comandos. Pero antes de entrar en materia, vale la pena mencionar que todos los ejemplos aquí se han probado en una máquina Ubuntu 18.04 LTS.
Comando xz de Linux
Como ya hemos mencionado al principio, el comando xz en Linux te permite comprimir y descomprimir archivos. A continuación se muestra su sintaxis:
xz [option...] [file...]
Y esto es lo que dice la página man al respecto:
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.
A continuación hay algunos ejemplos al estilo de las preguntas y respuestas que deberían darte una mejor idea de cómo funciona xz.
Q1. ¿Cómo se utiliza el comando xz?
El uso básico es bastante sencillo. Sólo tienes que pasar el nombre del archivo (que se va a comprimir) como argumento de entrada a xz. Aquí tienes un ejemplo:
xz file.txt
En mi sistema, el comando mencionado produjo el siguiente archivo como salida.
file.txt.xz
Así puedes ver que el comando xz comprimió el archivo.txt. Cabe mencionar que la operación sustituye el archivo original (archivo.txt en este caso) por la versión comprimida.
Q2. ¿Cómo hacer que xz conserve también el archivo original?
Como he mencionado en el apartado anterior, el comando xz sustituye el archivo original por su versión comprimida. Sin embargo, si quieres, puedes forzar a xz a que conserve también el archivo original. Esto puede hacerse utilizando la opción de línea de comandos -k.
Por ejemplo:
xz -k file.txt
Esta vez, encontrarás tanto archivo.txt como archivo.txt.xz en el directorio de trabajo actual.
Q3. ¿Cómo comprimir varios archivos?
Es muy sencillo. Sólo tienes que pasar los nombres como argumentos de entrada a xz.
Por ejemplo:
xz file1.txt file2.txt
Este comando comprimirá estos dos archivos de una sola vez.
Q4. ¿Cómo se descomprimen los archivos .xz?
Para descomprimir archivos .xz, utiliza la opción de línea de comandos -d. Por ejemplo:
xz -d file.txt.xz
Este comando producirá el archivo.txt en el directorio de trabajo actual.
Q5. ¿Cómo hacer que xz imprima información sobre los archivos comprimidos?
Esto se puede hacer utilizando la opción de línea de comandos -l. Por ejemplo:
xz -l file.txt.xz
Este comando produjo la siguiente información en mi caso:
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 96 B 37 B 2.595 CRC64 file.txt.xz
Q6. ¿Cómo especificar un formato de compresión/descompresión diferente?
Esto puede hacerse utilizando la opción de línea de comandos -F. Sin embargo, para utilizar esta opción, tienes que entender lo siguiente:
-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.
Como ves, puedes utilizar cualquiera de los siguientes formatos ‘auto’, ‘xz’, ‘lzma’ y ‘raw’.
Q7. ¿Cómo hacer que xz muestre el indicador de progreso?
Esto puede hacerse utilizando la opción de línea de comandos -v. Aquí tienes un ejemplo:
Conclusión
Aunque en este tutorial hemos hablado de un puñado de opciones de la línea de comandos de xz, hay muchas más. Una vez que hayas terminado de entenderlas y practicarlas, dirígete a la página man de la herramienta para aprender más sobre ella.