Lzip

lzip logo [ English | Español | Français | Italiano | Russkii ]

Introducción

Lzip es un compresor de datos sin pérdida con una interfaz de usuario similar a la de gzip o bzip2. Lzip usa una forma simplificada del formato LZMA para maximizar la interoperabilidad. El máximo tamaño de diccionario es de 512 MiB para que cualquier fichero lzip pueda ser descomprimido en máquinas de 32 bits. Lzip proporciona comprobación de integridad de 3 factores precisa y robusta. Lzip puede comprimir aproximadamente tan rápido como gzip (lzip -0) o puede comprimir la mayoría de los ficheros más que bzip2 (lzip -9). La velocidad de descompresión es intermedia entre las de gzip y bzip2. Lzip es mejor que gzip y bzip2 desde una perspectiva de recuperación de datos. Lzip ha sido diseñado, escrito, y probado con gran cuidado para reemplazar a gzip y bzip2 como compresor estándard de propósito general para sistemas tipo Unix.

El formato de fichero de lzip está diseñado para el intercambio de datos y el archivo de datos a largo plazo, teniendo en cuenta tanto la integridad de los datos como la disponibilidad de un descompresor:

Una característica interesante del formato lzip es que un byte dañado es más fácil de reparar cuanto más cerca está del principio del fichero. Por tanto, con la ayuda de lziprecover, perder un archivo entero por culpa de un byte dañado cerca del principio es cosa del pasado.

Lzip usa los mismos valores de retorno bien definidos usados por bzip2, lo que lo hace más seguro que los compresores que retornan valores de advertencia ambiguos (como gzip) cuando se usa como complemento de otros programas como tar o zutils.

Enlaces introductorios

Benchmark - Tests que muestran la capacidad de lzip para reemplazar a gzip y bzip2 como compresor de uso general en sistemas tipo Unix. (En inglés).

Control de calidad - Diseño, desarrollo, y testeo de lzip. (En inglés).

Safety of the lzip format - Este artículo mide la seguridad de la comprobación de integridad de lzip y explica por qué lzip consigue gran exactitud en la detección de errores. (En inglés).

El formato lzip (diapositivas) - Charla pronunciada en el GNU Hackers Meeting 2019.

Xz format inadequate for long-term archiving - Este artículo describe las razones por las que debería pasarse a lzip si está usando xz para cualquier cosa que no sea comprimir ejecutables de vida corta. (En inglés).

Otras características

Lzip utiliza automáticamente para cada fichero el tamaño de diccionario más grande posible sin sobrepasar el tamaño del fichero ni el límite dado. Tenga en cuenta que la cantidad de memoria requerida durante la descompresión se ve afectada en el momento de la compresión por la elección del límite del tamaño de diccionario.

Al comprimir, lzip reemplaza cada fichero dado en la línea de comando con una versión comprimida del mismo, con el nombre "nombre_original.lz".

(Des)comprimir un fichero es similar a copiarlo o moverlo; por tanto lzip preserva las fechas de acceso y modificación, los permisos y, si tienes los privilegios adecuados, el propietario del fichero igual que hace el comando 'cp -p'. (Si el usuario o el grupo no pueden ser duplicados, los bits de permisos del fichero S_ISUID y S_ISGID son puestos a cero).

Lzip es capaz de leer de algunos tipos de ficheros no regulares si se especifica la opción '--stdout'.

Si no se especifican nombres de fichero, lzip comprime (o descomprime) desde la entrada estándar a la salida estándar. En este caso, lzip rehusa escribir los datos comprimidos a un terminal, ya que esto sería totalmente incomprensible y por lo tanto inútil.

Lzip descomprime correctamente un fichero que sea la concatenación de dos o más ficheros comprimidos. El resultado es la concatenación de los correspondientes ficheros descomprimidos. La integridad de los ficheros comprimidos concatenados también se puede comprobar.

Lzip puede producir ficheros multimiembro, y lziprecover puede recuperar de forma segura los miembros no dañados en caso de que el fichero sufra daños. Lzip también puede dividir la salida comprimida en volúmenes de un tamaño determinado, incluso leyendo de la entrada estándar. Esto permite la creación directa de archivos tar multivolumen comprimidos.

Lzip es capaz de comprimir y descomprimir flujos de datos de tamaño ilimitado mediante la creación automática de salida multimiembro.

A pesar de su nombre (Lempel-Ziv-Markov chain-Algorithm), LZMA no es un algoritmo concreto; es más bien "cualquier algoritmo que use la codificación LZMA". Por ejemplo, la opción '-0' de lzip usa el código casi de la forma más simple posible; emitiendo la concordancia más larga que encuentra, o un byte literal si no encuentra una concordancia. A la inversa, una forma mucho más elaborada de encontrar secuencias codificadas de tamaño mínimo que la actualmente usada por lzip podría ser desarrollada, y la secuencia resultante podría también ser codificada usando la codificación LZMA.

Lzip actualmente implementa dos variantes del algoritmo LZMA; rápida (usada por la opción '-0') y normal (usada por los demás niveles de compresión).

La elevada compresión de LZMA proviene de la combinación de dos ideas de compresión básicas y bien probadas: diccionarios deslizantes (LZ77) y modelos de Markov (la cosa utilizada por cada algoritmo de compresión que utiliza un codificador de rango o un codificador de entropía similar de orden-0 como última etapa) con segregación de contextos de acuerdo al uso que se da a los distintos bits.

Las ideas incorporadas en lzip son debidas a (al menos) las siguientes personas: Abraham Lempel y Jacob Ziv (por el algoritmo LZ), Andrei Markov (por la definición de las cadenas de Markov), G.N.N. Martin (por la definición del codificador de rango), Igor Pavlov (por poner todo lo anterior junto en LZMA), y Julian Seward (por la interfaz de bzip2).

Proyectos relacionados

Plzip - Un compresor masivamente paralelo que usa el formato de fichero lzip.

Lzlib - Una biblioteca de compresión para el formato de fichero lzip escrita en C.

Lunzip - Un pequeño descompresor para ficheros en formato lzip escrito en C.

Clzip - Una implementación de lzip en C para sistemas que carecen de un compilador de C++.

Lziprecover - Una herramienta de recuperación de datos y descompresor para el formato lzip.

Zutils - Versión de zcat, zdiff, zgrep, etc, que entiende los formatos de lzip, bzip2 y gzip.

Pdlzip - Una implementación limitada, de "dominio público" en C del compresor lzip, destinada a aquellos que no pueden distribuir Software Libre bajo licencia GPL. Pdlzip también es capaz de descomprimir los obsoletos ficheros lzma-alone (.lzma).

Lzd - Un descompresor educativo para el formato lzip.

Xlunzip - Una herramienta para probar el módulo lzip_decompress de linux.

Tarlz - Archivador con compresión lzip multimiembro.

Documentación

El manual está disponible en el sistema info del Sistema Operativo GNU. Use el comando info para acceder al directorio del sistema info. Use info lzip para acceder directamente a la sección de lzip.

Se puede acceder al manual en línea de lzip desde manual/lzip_manual.html.

Descargar (Download) lzip

La última versión publicada de lzip se puede encontrar en http://download.savannah.gnu.org/releases/lzip/. También es posible suscribirse a lzip-bug y recibir un email cada vez que se publica una nueva versión.

Lzip se puede compilar y opcionalmente instalar ejecutando los siguientes comandos:

tar -xf lzip[version].tar.gz
cd lzip[version] && ./configure && make check

por último (como root) ejecute:

make install

Una vez que lzip está instalado, los ficheros del archivo "foo.tar.lz" se pueden extraer con los comandos "tar -xf foo.tar.lz" o "lzip -cd foo.tar.lz | tar -xf -".

Cómo conseguir ayuda

Para informar sobre errores (bugs) en lzip, la lista de correo lzip-bug@nongnu.org es el lugar más adecuado. Por favor, envíe los mensajes como texto llano. Por favor, no envíe mensajes en formato HTML ni codificados en base64 ni en múltiples formatos. Incluya una línea descriptiva en el asunto del mensaje que incluya la palabra "lzip".

Un archivo de la lista de correo está disponible en http://lists.gnu.org/mailman/listinfo/lzip-bug.

Cómo ayudar

Para contactar con el autor, tanto para informar sobre un error (bug) como para contribuir soluciones o mejoras, envíe un mensaje a lzip-bug@nongnu.org. Por favor, envíe los mensajes como texto llano. Si envía parches, hágalo en formato diff unificado (diff -u) sobre la última versión. Incluya una descripción del problema en el mensaje.

También se puede visitar la página de lzip en Savannah.

Valid HTML 4.01 Strict


Esta página ha sido traducida por Sonia Díaz Pacheco.

Copyright © 2024 Antonio Diaz Diaz
Lzip logo Copyright © 2013 Sonia Diaz Pacheco

Este artículo puede ser copiado, modificado, y distribuido, en todo o en parte, sin limitación.

Updated: 2024-03-15

Esta página no usa javascript.