XZ Utils (anteriormente LZMA Utils ) es un conjunto de compresores de datos sin pérdida de línea de comandos de software gratuito , incluidos lzma y xz, para sistemas operativos similares a Unix y, a partir de la versión 5.0, Microsoft Windows .
Autor (es) original (es) | Lasse Collin |
---|---|
Desarrollador (es) | El Proyecto Tukaani |
Lanzamiento estable | 5.2.5 / 17 de marzo de 2020 [1] |
Repositorio | |
Escrito en | C |
Sistema operativo | Multiplataforma |
Tipo | Compresión de datos |
Licencia | Dominio publico . [2] (pero ver detalles en Desarrollo y adopción ) |
Sitio web | tukaani |
En la mayoría de los casos, xz logra tasas de compresión más altas que alternativas como gzip y bzip2 . La velocidad de descompresión es más rápida que bzip2, pero más lenta que gzip. La compresión puede ser mucho más lenta que gzip y más lenta que bzip2 para niveles altos de compresión, y es más útil cuando un archivo comprimido se usará muchas veces. [3] [4]
XZ Utils consta de dos componentes principales:
xz
, el compresor y descompresor de línea de comandos (análogo a gzip )- liblzma , una biblioteca de software con una API similar a zlib
Existen varios atajos de comando, como lzma
(para xz --format=lzma
), unxz
(para xz --decompress
; análogo a gunzip
) y xzcat
(para unxz --stdout
; análogo a zcat
)
XZ Utils puede comprimir y descomprimir los formatos de archivo xz y lzma , pero dado que el formato LZMA ahora es heredado , [5] XZ Utils se comprime de forma predeterminada en xz.
Uso
Tanto el comportamiento del software como las propiedades del formato de archivo han sido diseñados para funcionar de manera similar a los de las populares herramientas de compresión de Unix gzip y bzip2 . Consiste en un puerto Unix del LZMA- SDK de Igor Pavlov que ha sido adaptado para encajar perfectamente en entornos Unix y su estructura y comportamiento habituales.
xz admite compresión multiproceso (con la -T
bandera) [6] desde 2014, versión 5.2.0 .; [7] a partir de 2019 aún no se ha implementado la descompresión por subprocesos. [6] El número de subprocesos puede ser menor que el definido si el archivo no es lo suficientemente grande para subprocesos con la configuración dada o si el uso de más subprocesos excedería el límite de uso de memoria. [6]
Al igual que gzip y bzip, xz y lzma solo pueden comprimir archivos individuales (o flujos de datos) como entrada. No pueden agrupar varios archivos en un solo archivo ; para ello, primero se utiliza un programa de archivo, como tar .
Comprimir un archivo:
xz my_archive.tar # da como resultado my_archive.tar.xzlzma my_archive.tar # da como resultado my_archive.tar.lzma
Descomprimir el archivo:
unxz my_archive.tar.xz # da como resultado my_archive.tarunlzma my_archive.tar.lzma # da como resultado my_archive.tar
La versión 1.22 o superior de la implementación GNU de tar tiene soporte transparente para tarballs comprimidos con lzma y xz, usando los conmutadores --xz
o -J
para la compresión xz, y --lzma
para la compresión LZMA.
Crear un archivo y comprimirlo:
tar -c --xz -f my_archive.tar.xz / some_directory # da como resultado my_archive.tar.xztar -c --lzma -f my_archive.tar.lzma / some_directory # da como resultado my_archive.tar.lzma
Descomprimir el archivo y extraer su contenido:
tar -x --xz -f my_archive.tar.xz # resultados en / some_directorytar -x --lzma -f my_archive.tar.lzma # resultados en / some_directory
Ejemplo de tar de una sola letra para archivo con comprimir y descomprimir con extracto usando sufijo corto :
tar cJf keep.txz keep # archive luego comprima el directorio ./keep/ en el archivo ./keep.txztar xJf keep.txz # descomprimir luego extraer el archivo ./keep.txz creando el directorio ./keep/
El formato xz
El formato xz mejora en lzma al permitir filtros de preprocesamiento. Los filtros exactos utilizados son similares a los utilizados en 7z , ya que los filtros de 7z están disponibles en el dominio público a través del SDK de LZMA.
Desarrollo y adopción
El desarrollo de XZ Utils se llevó a cabo dentro del Proyecto Tukaani, que fue dirigido por Mike Kezner, por un pequeño grupo de desarrolladores que alguna vez mantuvieron una distribución de Linux basada en Slackware .
Todo el código fuente de xz y liblzma ha sido liberado al dominio público . La distribución fuente de XZ Utils incluye además algunos scripts opcionales y un programa de ejemplo que están sujetos a varias versiones de la GPL . [2]
Específicamente, la lista completa de scripts y fuentes GPL distribuidos con el software XZ Utils incluye:
- Una implementación opcional de una función libc común, getopt ( GNU GPL v2 y GNU LGPL v2.1 )
- Un script m4 para la detección de subprocesos ( GNU GPL v3 )
- Algunos scripts de contenedor no esenciales (xzgrep, etc.) ( GNU GPL v2 )
- Y el programa de ejemplo scanlzma, que no está integrado con el sistema de compilación
Los binarios de software xz y liblzma resultantes son de dominio público, a menos que se incorpore la implementación opcional de getopt LGPL . [8]
Los binarios están disponibles para FreeBSD , sistemas Linux , Microsoft Windows y FreeDOS . Varias distribuciones de Linux , incluidas Fedora , Slackware , Ubuntu y Debian, usan xz para comprimir sus paquetes de software. Arch Linux usó anteriormente xz para comprimir paquetes, [9] pero a partir del 27 de diciembre de 2019, los paquetes se comprimen con compresión Zstandard . [10] El archivo GNU FTP también usa xz.
Referencias
- ^ "Notas de la versión de XZ Utils" . [repositorio de git] . Lasse Collin. 2020-03-17 . Consultado el 30 de marzo de 2020 .
- ^ a b Licencias en tukaani.org "Las partes más interesantes de XZ Utils (p. ej., liblzma) son de dominio público. Puedes hacer lo que quieras con las partes de dominio público. Algunas partes de XZ Utils (p. ej., compilar el sistema y algunas utilidades ) están bajo diferentes licencias de software libre como GNU LGPLv2.1, GNU GPLv2 o GNU GPLv3 ".
- ^ Henry-Stocker, Sandra (12 de diciembre de 2017). "Cómo aprovechar al máximo la compresión de archivos de Linux" . Mundo de la red . Consultado el 9 de febrero de 2020 .
- ^ "Comparación de rendimiento de Gzip vs Bzip2 vs XZ" . RootUsers . 2015-09-16 . Consultado el 9 de febrero de 2020 .
- ^ Utilidades de LZMA , recuperada 2011-01-25
- ^ a b c https://man.cx/xz
- ^ https://git.tukaani.org/?p=xz.git;a=blob;f=NEWS;hb=HEAD
- ^ "¿En qué casos la salida de un programa GPL también está cubierta por la GPL?" . GNU.org . Consultado el 21 de agosto de 2019 .
- ^ Pierre Schmitz (23 de marzo de 2010). "Noticias: Cambio a compresión xz para nuevos paquetes" .
- ^ "Arch Linux - Noticias: ahora se usa Zstandard en lugar de xz para la compresión de paquetes" . www.archlinux.org . Consultado el 7 de enero de 2020 .
enlaces externos
- Página web oficial
- Página del proyecto de SourceForge