Aprende a comprimir y descomprimir archivos eficientemente en GNU/Linux usando xz y su potente algoritmo LZMA2.


El comando xz es una de las utilidades más eficientes disponibles actualmente, ya que emplea el algoritmo LZMA2, conocido por ofrecer altas tasas de compresión manteniendo un consumo de recursos razonable.

Por este motivo, xz se ha convertido en el formato estándar en muchas distribuciones modernas (por ejemplo, los paquetes .tar.xz del kernel o de numerosas fuentes oficiales).

¿Para qué se usa el comando xz?

El comando xz se utiliza para:

  • Comprimir archivos con mayor eficiencia que gzip o bzip2.
  • Reducir significativamente el tamaño de backups o distribuciones de software.
  • Descomprimir archivos en formato .xz.
  • Trabajar junto con tar para generar archivos .tar.xz.
  • Ajustar el nivel de compresión según necesidades de CPU, memoria o velocidad.
  • Automatizar tareas de archivado en scripts de administración.

Sintaxis básica

xz [opciones] archivo

Por defecto:

  • Comprime el archivo.
  • Sustituye el original por el comprimido.
  • Genera archivo.xz.

Para descomprimir:

xz -d archivo.xz

Ejemplos prácticos del comando xz

A continuación se muestran algunos ejemplos prácticos de uso del comando, junto con una breve explicación de cada caso para entender mejor su funcionamiento.

Comprimir un archivo

xz backup.sql

Resultado:

backup.sql.xz

El archivo original desaparece y queda reemplazado por la versión comprimida.

Mantener el archivo original

xz -k backup.sql

La opción -k (keep) conserva el archivo sin comprimir, útil cuando no queremos perder el original.

Descomprimir un archivo

xz -d backup.sql.xz

También puede usarse:

unxz backup.sql.xz

Mostrar información del proceso

xz -v backup.sql

Salida típica:

backup.sql (1/1)
  100 %        32.4 MiB / 4.2 MiB = 7.710

Permite ver el ratio de compresión obtenido.

Ajustar el nivel de compresión

xz -9 backup.sql
  • -0 → más rápido, menos compresión
  • -9 → máxima compresión, más lento

Usar todos los núcleos de CPU

xz -T0 backup.sql

-T0 indica que use todos los hilos disponibles.

Muy útil en sistemas modernos para acelerar la compresión.

Comprimir múltiples archivos

xz logs/*.log

Cada archivo se comprimirá de forma independiente.

Enviar salida a stdout (modo pipeline)

xz -c backup.sql > backup.sql.xz

La opción -c escribe en salida estándar, ideal para scripts o tuberías.

Usar xz junto con tar

Uno de los usos más comunes:

tar -cJf backup_home.tar.xz /home/t3rr0rz0n3

Donde:

  • -c → crear archivo
  • -J → usar compresión xz
  • -f → nombre del archivo

Para extraer:

tar -xJf backup_home.tar.xz

Ver información de un archivo comprimido

xz -l backup_home.tar.xz

Salida:

Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
1      1        42.0 MiB   310.0 MiB     0.135  CRC64   backup_home.tar.xz

Permite analizar el nivel real de compresión sin descomprimir.

Forzar sobrescritura

xz -f backup.sql

Sobrescribe archivos existentes sin preguntar.

Conclusión

El comando xz es una herramienta clave en GNU/Linux cuando la prioridad es maximizar la compresión y reducir el espacio ocupado por archivos grandes. Aunque su velocidad de compresión es menor que otras alternativas, su eficiencia lo convierte en el estándar moderno para archivado y distribución de software.

Bien utilizado, permite ahorrar almacenamiento, optimizar transferencias y mantener infraestructuras más eficientes, especialmente en servidores y entornos profesionales.


¿Buscas otro comando?

¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!

Diccionario de comandos para GNU/Linux
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación