Hay varias formas de comprimir y descomprimir archivos en Linux. Si bien ya hemos discutido algunos (aquí y aquí), hay muchos que aún no hemos analizado. Así que aquí, en este tutorial, discutiremos otra utilidad de línea de comandos.
Se llama xz . Discutiremos los conceptos básicos de esta herramienta de línea de comandos. Pero antes de pasar a eso, vale la pena mencionar que todos los ejemplos aquí se han probado en una máquina con Ubuntu 18.04 LTS.
Comando Linux xz
Como ya se mencionó al principio, el comando xz en Linux le permite comprimir y descomprimir archivos. La siguiente es su sintaxis:
xz [opción...] [archivo...]
Y esto es lo que dice la página del manual al respecto:
xz es una herramienta de compresión de datos de uso general con una sintaxis de línea de comandos similar a gzip(1)
y bzip2(1). El formato de archivo nativo es el formato .xz, pero también se admite el formato heredado .lzma utilizado
por LZMA Utils y las secuencias comprimidas sin procesar sin encabezados de formato de contenedor.
xz comprime o descomprime cada archivo de acuerdo con el modo de operación seleccionado. Si no se proporciona ningún archivo
o el archivo es -, xz lee desde la entrada estándar y escribe los datos procesados en la
salida estándar. xz se negará (mostrará un error y omitirá el archivo) para escribir datos comprimidos
en la salida estándar si se trata de una terminal. Del mismo modo, xz se negará a leer datos comprimidos
de la entrada estándar si se trata de una terminal.
Los siguientes son algunos ejemplos de estilo de preguntas y respuestas que le darán una mejor idea de cómo funciona xz.
P1. ¿Cómo usar el comando xz?
El uso básico es bastante sencillo. Simplemente pase el nombre del archivo (que se va a comprimir) como argumento de entrada a xz. He aquí un ejemplo:
archivo xz.txt
En mi sistema, el comando antes mencionado produjo el siguiente archivo como salida.
archivo.txt.xz
Entonces puede ver el archivo comprimido del comando xz.txt. Vale la pena mencionar que la operación reemplaza el archivo original (archivo.txt en este caso) con la versión comprimida.
P2. ¿Cómo hacer que xz conserve el archivo original también?
Como mencioné en la sección anterior, el comando xz reemplaza el archivo original con su versión comprimida. Sin embargo, si lo desea, también puede obligar a xz a conservar el archivo original. Esto se puede hacer usando la opción de línea de comando -k.
Por ejemplo:
xz -k archivo.txt
Así que esta vez, encontrará tanto file.txt como file.txt.xz en el directorio de trabajo actual.
Q3. ¿Cómo comprimir varios archivos?
Esto es muy simple. Simplemente pase los nombres como argumentos de entrada a xz.
Por ejemplo:
xz archivo1.txt archivo2.txt
Este comando comprimirá ambos archivos de una sola vez.
P4. ¿Cómo descomprimir archivos .xz?
Para descomprimir archivos .xz, use la opción de línea de comando -d. Por ejemplo:
xz -d archivo.txt.xz
Este comando produciría file.txt en el directorio de trabajo actual.
P5. ¿Cómo hacer que xz imprima información sobre archivos comprimidos?
Esto se puede hacer usando la opción de línea de comando -l. Por ejemplo:
xz -l archivo.txt.xz
Este comando produjo la siguiente información en mi caso:
Strms Blocks Comprimidos sin comprimir Proporción Comprobación Nombre de archivo
1 1 96 B 37 B 2.595 CRC64 archivo.txt.xz
P6. ¿Cómo especificar un formato de compresión/descompresión diferente?
Esto se puede hacer usando la opción de línea de comando -F. Sin embargo, para usar esta opción, debe comprender lo siguiente:
-F format, --format=format
Especifique el formato de archivo para comprimir o descomprimir:
auto Este es el formato predeterminado. Al comprimir, auto es equivalente a xz. Al descomprimir, el formato del archivo de entrada
se detecta automáticamente. Tenga en cuenta que las secuencias sin procesar (creadas con --format=raw) no se pueden detectar automáticamente.
xz Comprima al formato de archivo .xz, o acepte solo archivos .xz al descomprimir.
lzma, solo
Comprima al formato de archivo heredado .lzma, o acepte solo archivos .lzma al descomprimir. Solo el nombre alternativo
se proporciona para la compatibilidad con versiones anteriores de LZMA Utils.
raw Comprime o descomprime una transmisión sin procesar (sin encabezados). Esto está destinado solo para usuarios avanzados. Para decodificar flujos sin procesar,
necesita usar --format=raw y especificar explícitamente la cadena de filtro, que normalmente se habría almacenado en los encabezados del contenedor
Como ves, puedes usar cualquiera de los siguientes formatos:'auto', 'xz', 'lzma' y 'raw'.
P7. ¿Cómo hacer que xz muestre el indicador de progreso?
Esto puede hacerse posible usando la opción de línea de comando -v. He aquí un ejemplo:
Conclusión
Si bien hemos discutido un puñado de opciones de línea de comando xz en este tutorial, hay muchas más. Una vez que haya terminado de comprender y practicar estos, diríjase a la página de manual de la herramienta para obtener más información al respecto.