Compresión XZ, una herramienta de compresión de datos sin pérdidas
En el siguiente artículo vamos a echar un vistazo a la utilidad de compresión xz. Sobre ella ya nos habló un compañero hace algún tiempo en un artículo sobre cómo comprimir y descomprimir archivos en Ubuntu. El uso de esta herramienta es similar a gzip y bzip2.
Se puede utilizar para comprimir o descomprimir archivos de acuerdo con el modo de operación seleccionado. El método de compresión que utilizan estos archivos está basado en el algoritmo de LZMA/LZMA2. Este algoritmo empezó a desarrollarse a finales de los 90. Utiliza un esquema de diccionario de compresión similar a LZ77.
El algoritmo de compresión LZ77 pertenece a la familia de compresores sin pérdida, conocidos también como compresores de texto. Se les conoce por ese nombre porque no omiten información del archivo al comprimirlo. Al contrario que los compresores que utilizan algoritmos del tipo lossy. Estos omiten algo de información buscando disminuir considerablemente el tamaño del archivo original. Una ejemplo de ello serían los jpeg, MP3, MPG, etc.
En comparación con los archivos “gz”, “xz” tiene un mejor ratio de compresión e inferior tiempo de descompresión. Sin embargo, cuando utilizamos los ajustes de compresión que trae por defecto, va a requerir más memoria para descomprimir. Gzip tiene un uso de memoria algo inferior.
Los archivos .xz se utilizan para comprimir y descomprimir datos, buscando que la transferencia de archivos por Internet o el almacenamiento de la información en discos duros ocupe menos. En conclusión, si queremos comprimir un archivo buscando que ocupe lo mínimo posible, tenemos la opción de comprimirlo con xz.
Cómo utilizar la compresión XZ
Comprimir
El ejemplo más simple de compresión de un archivo con xz es el siguiente. En la terminal (Ctrl+Alt+T) escribimos:
xz android-x86_64-7.1-r2.iso
También se puede utilizar la opción -z para realizar la compresión:
xz -z android-x86_64-7.1-r2.iso
Estas órdenes comprimirán el fichero, pero eliminará el archivo origen. Si no buscamos borrar los archivos de origen, usaremos la opción -k de la siguiente manera:
xz -k android-x86_64-7.1-r2.iso
Descomprimir
Para descomprimir un archivo, vamos a poder utilizar la opción -d:
xz -d android-x86_64-7.1-r2.iso
También podremos conseguir lo mismo con la opción unxz:
unxz android-x86_64-7.1-r2.iso
Forzar compresión
Si una operación falla, por ejemplo, si existe un archivo comprimido con el mismo nombre, usaremos la opción -f para forzar el proceso:
xz -kf android-x86_64-7.1-r2.iso
Establecer niveles de compresión
Esta herramienta admite diferentes niveles preestablecidos de compresión (de 0 a 9. Con un valor predeterminado de 6). También vamos a poder utilizar alias como –fast (será rápido, pero con menos compresión) para establecer como valor 0 y –best para establecer como valor 9 (compresión lenta pero más alta). Algunos ejemplos de cómo establecer estos niveles, son los siguientes:
xz -k -8 android-x86_64-7.1-r2.iso xz -k --best android-x86_64-7.1-r2.iso
Limitar la memoria
En caso de tener una cantidad pequeña de memoria del sistema y querer comprimir un archivo enorme, vamos a tener la posibilidad de utilizar la opción -memory = límite (el valor límite puede estar en MB o como porcentaje de RAM) para establecer un límite de uso de memoria para la compresión:
xz -k --best --memlimit-compress=10% android-x86_64-7.1-r2.iso
Habilitar modo silencioso
Si nos interesa ejecutar la compresión en modo silencioso solo habrá que añadir la opción -q. También podremos habilitar el modo detallado con -v, como se muestra a continuación:
xz -k -q android-x86_64-7.1-r2.iso xz -k -qv android-x86_64-7.1-r2.iso
Crear un archivo tar.xz
El siguiente es un ejemplo del uso para conseguir un archivo con la extensión tar.xz.
tar -cf - *.txt | xz -7 > txtfiles.tar.xz
Para conseguir este mismo fin, también podremos utilizar:
tar -cJf txtfiles.tar.xz *.txt
Comprobar la integridad de los archivos comprimidos
Podremos probar la integridad de los archivos comprimidos utilizando la opción -t. Utilizando -l podremos ver la información sobre un archivo comprimido.
xz -t txtfiles.tar.xz xz -l txtfiles.tar.xz
Esta es una buena herramienta para comprimir archivos. En este artículo, solo analizamos algunos ejemplos para comprimir y descomprimir. Para obtener más información sobre todo lo que podremos hacer, se puede recurrir a la página man xz.
El artículo Compresión XZ, una herramienta de compresión de datos sin pérdidas ha sido originalmente publicado en Ubunlog.