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:

Cómo hacer que xz muestre el indicador de progreso

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.

También te podría gustar...