InglésFrancésEspañol

Ad


icono de página de OnWorks

xzcat - Online en la nube

Ejecute xzcat en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando xzcat que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


xz, unxz, xzcat, lzma, unlzma, lzcat: comprime o descomprime archivos .xz y .lzma

SINOPSIS


xz [opción] ... [presentar] ...

unxz es equivalente a xz --descomprimir.
xzcat es equivalente a xz --descomprimir --salida estándar.
lzma es equivalente a xz --format = lzma.
unlzma es equivalente a xz --format = lzma --descomprimir.
lzcat es equivalente a xz --format = lzma --descomprimir --salida estándar.

Al escribir scripts que necesitan descomprimir archivos, se recomienda utilizar siempre el
nombre xz con argumentos apropiados (xz -d or xz -corriente continua) en lugar de los nombres unxz y xzcat.

DESCRIPCIÓN


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 .xz formato, pero el legado .lzma formato utilizado
por LZMA Utils y los flujos comprimidos sin procesar sin encabezados de formato de contenedor también
soportado.

xz comprime o descomprime cada presentar según el modo de funcionamiento seleccionado. Si no
archivos se dan o presentar is -, xz lee de la entrada estándar y escribe los datos procesados
a salida estándar. xz se negará (mostrará un error y omitirá el presentar) escribir
datos comprimidos a salida estándar si es un terminal. Similar, xz se negará a leer
datos comprimidos de la entrada estándar si es un terminal.

A no ser que --salida estándar está especificado, archivos que no sea - se escriben en un nuevo archivo cuyo nombre es
derivado de la fuente presentar Nombre:

· Al comprimir, el sufijo del formato de archivo de destino (.xz or .lzma) se adjunta a
el nombre del archivo de origen para obtener el nombre del archivo de destino.

· Al descomprimir, el .xz or .lzma El sufijo se elimina del nombre del archivo para obtener el
nombre de archivo de destino. xz también reconoce los sufijos .txz y .tlzy los reemplaza con
las .alquitrán sufijo.

Si el archivo de destino ya existe, se muestra un error y el presentar se omite.

A menos que se escriba en salida estándar, xz mostrará una advertencia y se saltará el presentar si alguno de
se aplica lo siguiente:

· Archive no es un archivo normal. Los enlaces simbólicos no se siguen y, por lo tanto, no se
considerados archivos regulares.

· Archive tiene más de un vínculo físico.

· Archive tiene setuid, setgid o sticky bit establecido.

· El modo de operación está configurado para comprimir y el presentar ya tiene un sufijo del objetivo
formato de archivo (.xz or .txz al comprimir al .xz formato, y .lzma or .tlz cuando
comprimiendo al .lzma formato).

· El modo de operación está configurado para descomprimir y el presentar no tiene un sufijo de ninguno de
los formatos de archivo admitidos (.xz, .txz, .lzmao .tlz).

Después de comprimir o descomprimir correctamente el presentar, xz copia al propietario, grupo,
permisos, tiempo de acceso y tiempo de modificación desde la fuente presentar al archivo de destino.
Si la copia del grupo falla, los permisos se modifican para que el archivo de destino no
volverse accesible para los usuarios que no tenían permiso para acceder a la fuente presentar. xz
no admite la copia de otros metadatos como listas de control de acceso o atributos extendidos
todavía.

Una vez que el archivo de destino se ha cerrado con éxito, la fuente presentar se elimina a menos que
--guardar fue especificado. La fuente presentar nunca se elimina si la salida se escribe en
salida estándar.

Enviando SIGNIFICAR or SIGUSR1 En el correo electrónico “Su Cuenta de Usuario en su Nuevo Sistema XNUMXCX”. xz proceso hace que imprima información de progreso para
Error estándar. Esto tiene un uso limitado ya que cuando el error estándar es un terminal, el uso de
--verboso mostrará un indicador de progreso que se actualiza automáticamente.

Salud Cerebral personal
El uso de memoria de xz varía de unos cientos de kilobytes a varios gigabytes dependiendo
en la configuración de compresión. La configuración utilizada al comprimir un archivo determina la
requisitos de memoria del descompresor. Normalmente, el descompresor necesita del 5% al ​​20% de
la cantidad de memoria que el compresor necesitaba al crear el archivo. Por ejemplo,
descomprimir un archivo creado con xz -9 actualmente requiere 65 MiB de memoria. Aún así, es
posible tener .xz archivos que requieren varios gigabytes de memoria para descomprimirse.

Especialmente los usuarios de sistemas más antiguos pueden encontrar la posibilidad de un uso de memoria muy grande
molesto. Para evitar sorpresas incómodas, xz tiene un limitador de uso de memoria incorporado,
que está deshabilitado por defecto. Si bien algunos sistemas operativos ofrecen formas de limitar la
uso de memoria de los procesos, confiar en él no se consideró lo suficientemente flexible (por ejemplo, usar
ulimit(1) limitar la memoria virtual tiende a paralizar mmap(2)).

El limitador de uso de memoria se puede habilitar con la opción de línea de comando --memlimit =límitar.
A menudo es más conveniente habilitar el limitador de forma predeterminada configurando el entorno
variable XZ_DEFAULTS, p.ej XZ_DEFAULTS = - límite de memoria = 150MiB. Es posible configurar el
límites por separado para compresión y descompresión utilizando --memlimit-compress =límitar y
--memlimit-decompress =límitar. Usando estas dos opciones afuera XZ_DEFAULTS rara vez es útil
porque una sola corrida de xz no puede hacer compresión y descompresión y
--memlimit =límitar (o -M límitar) es más corto de escribir en la línea de comando.

Si se excede el límite de uso de memoria especificado al descomprimir, xz mostrará un
error y la descompresión del archivo fallará. Si se excede el límite al comprimir, xz
intentará reducir la configuración para que el límite ya no se exceda (excepto cuando
usando --format = raw or --no ajustar). De esta forma, la operación no fallará a menos que el límite sea
muy pequeña. La escala de la configuración se realiza en pasos que no coinciden con la compresión.
niveles preestablecidos, por ejemplo, si el límite es solo un poco menor que la cantidad requerida para xz -9,
la configuración se reducirá solo un poco, no del todo a xz -8.

Concatenación y relleno .xz archivos
Es posible concatenar .xz archivos tal cual. xz descomprimirá dichos archivos como si
eran solteros .xz archivo.

Es posible insertar relleno entre las partes concatenados o después de la última parte.
El relleno debe constar de bytes nulos y el tamaño del relleno debe ser un múltiplo de
cuatro bytes. Esto puede ser útil, por ejemplo, si el .xz el archivo se almacena en un medio que mide
tamaños de archivo en bloques de 512 bytes.

La concatenación y el relleno no están permitidos con .lzma archivos o secuencias sin procesar.

CAMPUS


Entero sufijos y especial valores
En la mayoría de los lugares donde se espera un argumento entero, se admite un sufijo opcional para
indicar fácilmente números enteros grandes. No debe haber espacio entre el entero y el
sufijo.

Kb Multiplica el número entero por 1,024 (2 ^ 10). Ki, k, kB, Ky KB son aceptados como
sinónimos para Kb.

MIB Multiplica el número entero por 1,048,576 (2 ^ 20). Mi, m, My MB son aceptados como
sinónimos para MIB.

GiB Multiplica el número entero por 1,073,741,824 (2 ^ 30). Gi, g, Gy GB son aceptados como
sinónimos para GiB.

El valor especial max se puede utilizar para indicar el valor entero máximo admitido por el
.

Operación modo
Si se dan varias opciones de modo de operación, la última entra en vigencia.

-z, --comprimir
Comprimir. Este es el modo de funcionamiento predeterminado cuando no hay ninguna opción de modo de funcionamiento.
especificado y ningún otro modo de operación está implícito en el nombre del comando (para
ejemplo, unxz implica --descomprimir).

-d, --descomprimir, --descomprimir
Descomprimir.

-t, --prueba
Pruebe la integridad de comprimidos archivos. Esta opción es equivalente a --descomprimir
--salida estándar excepto que los datos descomprimidos se descartan en lugar de escribirse en
salida estándar. No se crean ni eliminan archivos.

-l, --lista
Imprimir información sobre comprimidos archivos. No se produce salida sin comprimir y
no se crean ni eliminan archivos. En el modo de lista, el programa no puede leer
datos comprimidos de la entrada estándar o de otras fuentes imposibles de buscar.

La lista predeterminada muestra información básica sobre archivos, un archivo por línea. Llegar
información más detallada, utilice también el --verboso opción. Por aun mas
información, uso --verboso dos veces, pero tenga en cuenta que esto puede ser lento, porque obtener
toda la información extra requiere muchas búsquedas. El ancho de la salida detallada excede
80 caracteres, por lo que canalizar la salida a, por ejemplo, menos -S puede ser conveniente si el
el terminal no es lo suficientemente ancho.

La salida exacta puede variar entre xz versiones y diferentes configuraciones regionales. Para máquina
salida legible, --robot --lista debe ser usado.

Operación modificadores
-k, --guardar
No elimine los archivos de entrada.

-f, --fuerza
Esta opción tiene varios efectos:

· Si el archivo de destino ya existe, elimínelo antes de comprimirlo o
descomprimiendo.

· Comprimir o descomprimir incluso si la entrada es un enlace simbólico a un archivo normal,
tiene más de un enlace físico, o tiene establecido el bit setuid, setgid o sticky. los
setuid, setgid y sticky bits no se copian en el archivo de destino.

· Cuando se usa con --descomprimir --salida estándar y xz no puede reconocer el tipo de
archivo de origen, copie el archivo de origen como está en la salida estándar. Esto permite xzcat
--fuerza para ser usado como gato(1) para archivos que no se han comprimido con xz.
Tenga en cuenta que en el futuro, xz puede admitir nuevos formatos de archivo comprimido, que pueden
para lograr xz descomprimir más tipos de archivos en lugar de copiarlos como es estándar
salida. --format =formato se puede utilizar para restringir xz descomprimir solo una
formato de archivo.

-c, --salida estándar, --a-stdout
Escriba los datos comprimidos o descomprimidos en una salida estándar en lugar de un archivo.
Esto implica --guardar.

- de un solo flujo
Descomprime solo el primero .xz Stream e ignorar silenciosamente la posible entrada restante
datos siguiendo la secuencia. Normalmente, esta basura arrastrada hace xz mostrar un
error.

xz nunca descomprime más de un flujo de .lzma archivos o transmisiones sin procesar, pero
esta opción todavía hace xz ignorar los posibles datos finales después de la .lzma presentar
o corriente sin procesar.

Esta opción no tiene ningún efecto si el modo de funcionamiento no está --descomprimir or --prueba.

--no escaso
Desactive la creación de archivos dispersos. De forma predeterminada, si se descomprime en un
archivo, xz intenta hacer que el archivo sea escaso si los datos descomprimidos contienen largos
secuencias de ceros binarios. También funciona cuando se escribe en una salida estándar siempre que
como salida estándar está conectada a un archivo normal y ciertas condiciones adicionales
se cumplen para hacerlo seguro. La creación de archivos dispersos puede ahorrar espacio en disco y acelerar
descompresión reduciendo la cantidad de E / S del disco.

-S .suf, --sufijo =.suf
Al comprimir, utilice .suf como sufijo del archivo de destino en lugar de .xz or
.lzma. Si no escribe en la salida estándar y el archivo fuente ya tiene la
sufijo .suf, se muestra una advertencia y se omite el archivo.

Al descomprimir, reconozca los archivos con el sufijo .suf además de archivos con
las .xz, .txz, .lzmao .tlz sufijo. Si el archivo de origen tiene el sufijo .suf, la
se elimina el sufijo para obtener el nombre de archivo de destino.

Al comprimir o descomprimir corrientes sin procesar (--format = raw), el sufijo debe
siempre se especificará a menos que se escriba en la salida estándar, porque no hay un valor predeterminado
sufijo para flujos sin procesar.

--archivos[=presentar]
Leer los nombres de archivo para procesar presentar; Si presentar se omite, los nombres de archivo se leen
desde la entrada estándar. Los nombres de archivo deben terminar con el carácter de nueva línea. A
pizca (-) se toma como un nombre de archivo normal; no significa entrada estándar. Si
Los nombres de archivo se dan también como argumentos de línea de comando, se procesan antes de
nombres de archivo leídos presentar.

--archivos0[=presentar]
Esto es idéntico a --archivos[=presentar] excepto que cada nombre de archivo debe terminarse
con el carácter nulo.

Basic presentar formato y compresión opciones
-F formato, --format =formato
Especifica el archivo formato para comprimir o descomprimir:

auto Este es el predeterminado. Al comprimir, auto es equivalente a xz. Cuando el
descomprimiendo, el formato del archivo de entrada se detecta automáticamente. Nota
que arroyos crudos (creados con --format = raw) no se pueden detectar automáticamente.

xz Comprimir al .xz formato de archivo, o aceptar solo .xz archivos cuando
descomprimiendo.

lzma, solo
Comprimir al legado .lzma formato de archivo, o aceptar solo .lzma archivos cuando
descomprimir. El nombre alternativo solo se proporciona al revés
compatibilidad con LZMA Utils.

crudo Comprima o descomprima una secuencia sin procesar (sin encabezados). Esto es para
solo usuarios avanzados. Para decodificar transmisiones sin procesar, necesita usar --format = raw y
especificar explícitamente la cadena de filtros, que normalmente se habría almacenado
en los encabezados del contenedor.

-C comprobar, --check =comprobar
Especifique el tipo de verificación de integridad. El cheque se calcula a partir del
datos sin comprimir y almacenados en el .xz expediente. Esta opción tiene efecto solo cuando
comprimiendo en el .xz formato; los .lzma El formato no admite comprobaciones de integridad.
La verificación de integridad (si existe) se verifica cuando el .xz el archivo está descomprimido.

Soportado comprobar tipos:

ninguna No calcule una verificación de integridad en absoluto. Suele ser una mala idea.
Esto puede ser útil cuando la integridad de los datos se verifica por otros medios.
de todos modos.

crc32 Calcule CRC32 utilizando el polinomio de IEEE-802.3 (Ethernet).

crc64 Calcule CRC64 usando el polinomio de ECMA-182. Este es el predeterminado,
ya que es ligeramente mejor que CRC32 para detectar archivos dañados y la
la diferencia de velocidad es insignificante.

sha256 Calcule SHA-256. Esto es algo más lento que CRC32 y CRC64.

Integridad del .xz Los encabezados siempre se verifican con CRC32. No es posible
cámbielo o desactívelo.

-0 ... -9
Seleccione un nivel de compresión preestablecido. El valor predeterminado es -6. Si hay varios niveles preestablecidos
se especifican, el último entra en vigor. Si una cadena de filtros personalizados ya estaba
especificado, el establecimiento de un nivel preestablecido de compresión borra la cadena de filtros personalizados.

Las diferencias entre los ajustes preestablecidos son más significativas que con gzip(1) y
bzip2(1). La configuración de compresión seleccionada determina los requisitos de memoria de
descompresor, por lo que usar un nivel preestablecido demasiado alto puede hacer que sea doloroso
descomprima el archivo en un sistema antiguo con poca RAM. Específicamente, es no a
candidato idea a ciegamente utilizan el -9 para todo como suele ser con gzip(1) y
bzip2(1).

-0 ... -3
Estos son preajustes algo rápidos. -0 a veces es más rápido que gzip -9 mientras
comprimiendo mucho mejor. Los más altos a menudo tienen una velocidad comparable a
bzip2(1) con una relación de compresión comparable o mejor, aunque los resultados
dependen mucho del tipo de datos que se comprimen.

-4 ... -6
Compresión de buena a muy buena manteniendo el uso de la memoria del descompresor
razonable incluso para sistemas antiguos. -6 es el predeterminado, que suele ser una buena
opción, por ejemplo, para distribuir archivos que deben descomprimirse incluso en
sistemas con solo 16 MiB de RAM. (-5e or -6e también puede valer la pena considerarlo.
See --extremo.)

-7 ... -9
Estos son como -6 pero con mayor memoria de compresor y descompresor
requisitos. Estos son útiles solo cuando se comprimen archivos más grandes que
8 MiB, 16 MiB y 32 MiB, respectivamente.

En el mismo hardware, la velocidad de descompresión es aproximadamente un número constante de
bytes de datos comprimidos por segundo. En otras palabras, cuanto mejor sea la compresión,
más rápida será la descompresión. Esto también significa que la cantidad de
la salida sin comprimir producida por segundo puede variar mucho.

La siguiente tabla resume las características de los ajustes preestablecidos:

Preestablecido DictSize CompCPU CompMem DecMem
-0 256 KiB 0 3 MiB 1 MiB
-1 1 MB 1 9 MB 2 MB
-2 2 MB 2 17 MB 3 MB
-3 4 MB 3 32 MB 5 MB
-4 4 MB 4 48 MB 5 MB
-5 8 MB 5 94 MB 9 MB
-6 8 MB 6 94 MB 9 MB
-7 16 MB 6 186 MB 17 MB
-8 32 MB 6 370 MB 33 MB
-9 64 MB 6 674 MB 65 MB

Descripciones de columnas:

· DictSize es el tamaño del diccionario LZMA2. Es un desperdicio de memoria usar un
diccionario más grande que el tamaño del archivo sin comprimir. Por eso es
bueno evitar usar los presets -7 ... -9 cuando no hay necesidad real de ellos.
At -6 y menor, la cantidad de memoria desperdiciada suele ser lo suficientemente baja como para no
cuestión.

· CompCPU es una representación simplificada de la configuración de LZMA2 que afecta
velocidad de compresión. El tamaño del diccionario también afecta la velocidad, por lo que mientras que CompCPU es
lo mismo para los niveles -6 ... -9, los niveles más altos tienden a ser un poco más lentos.
Para obtener una compresión aún más lenta y, por lo tanto, posiblemente mejor, consulte --extremo.

· CompMem contiene los requisitos de memoria del compresor en el modo de un solo subproceso.
Puede variar ligeramente entre xz versiones. Requisitos de memoria de algunos de los
Los futuros modos multiproceso pueden ser dramáticamente más altos que los de los
modo roscado.

· DecMem contiene los requisitos de memoria del descompresor. Es decir, la compresión
La configuración determina los requisitos de memoria del descompresor. El exacto
El uso de la memoria del descompresor es ligeramente mayor que el tamaño del diccionario LZMA2, pero
los valores de la tabla se han redondeado al siguiente MiB completo.

-e, --extremo
Utilice una variante más lenta del nivel preestablecido de compresión seleccionado (-0 ... -9) A
con suerte, obtendrá una relación de compresión un poco mejor, pero con mala suerte esto puede
también lo empeora. El uso de la memoria del descompresor no se ve afectado, pero el compresor
el uso de memoria aumenta un poco en los niveles preestablecidos -0 ... -3.

Dado que hay dos ajustes preestablecidos con tamaños de diccionario de 4 MiB y 8 MiB, los ajustes preestablecidos -3e
y -5e use configuraciones ligeramente más rápidas (menor CompCPU) que -4e y -6e,
respectivamente. De esa forma, no hay dos preajustes idénticos.

Preestablecido DictSize CompCPU CompMem DecMem
-0e 256 KiB 8 4 MiB 1 MiB
-1e 1 MB 8 13 MB 2 MB
-2e 2 MB 8 25 MB 3 MB
-3e 4 MB 7 48 MB 5 MB
-4e 4 MB 8 48 MB 5 MB
-5e 8 MB 7 94 MB 9 MB
-6e 8 MB 8 94 MB 9 MB
-7e 16 MB 8 186 MB 17 MB
-8e 32 MB 8 370 MB 33 MB
-9e 64 MB 8 674 MB 65 MB

Por ejemplo, hay un total de cuatro ajustes preestablecidos que utilizan el diccionario 8 MiB, cuyo
el orden del más rápido al más lento es -5, -6, -5ey -6e.

--rápido
--mejor Estos son alias algo engañosos para -0 y -9, respectivamente. Estos son
se proporciona solo para compatibilidad con versiones anteriores de LZMA Utils. Evite el uso de estos
.

--block-size =tamaño
Al comprimir al .xz formato, divida los datos de entrada en bloques de tamaño bytes
Los bloques se comprimen de forma independiente entre sí.

--memlimit-compress =límitar
Establezca un límite de uso de memoria para la compresión. Si esta opción se especifica varias
veces, el último entra en vigor.

Si la configuración de compresión excede el límitar, xz ajustará la configuración hacia abajo
para que el límite ya no se exceda y muestre un aviso de que automáticamente
se hizo el ajuste. Estos ajustes no se realizan al comprimir con
--format = raw o si --no ajustar ha sido especificado. En esos casos, se produce un error
visualizado y xz saldrá con el estado de salida 1.

El límitar se puede especificar de varias formas:

· Los límitar puede ser un valor absoluto en bytes. Usando un sufijo entero como MIB
puede ser útil. Ejemplo: --memlimit-compress = 80MiB

· Los límitar se puede especificar como un porcentaje de la memoria física total (RAM). Esta
puede ser útil especialmente al configurar XZ_DEFAULTS variable de entorno en un
script de inicialización de shell que se comparte entre diferentes computadoras. Ese
de manera que el límite es automáticamente mayor en sistemas con más memoria. Ejemplo:
--memlimit-compress = 70%

· Los límitar se puede restablecer a su valor predeterminado configurándolo en 0. Es
actualmente equivalente a establecer el límitar a max (sin límite de uso de memoria). Una vez
Se ha implementado el soporte de subprocesos múltiples, puede haber una diferencia entre 0
y max para el caso multiproceso, por lo que se recomienda utilizar 0 en lugar de max
hasta que se hayan decidido los detalles.

Ver también la sección Salud Cerebral personal.

--memlimit-decompress =límitar
Establezca un límite de uso de memoria para la descompresión. Esto también afecta al --lista modo. Si
la operación no es posible sin exceder el límitar, xz mostrará un error
y la descompresión del archivo fallará. Ver --memlimit-compress =límitar para su posible
formas de especificar el límitar.

-M límitar, --memlimit =límitar, --memory =límitar
Esto es equivalente a especificar --memlimit-compress =límitar
--memlimit-decompress =límitar.

--no ajustar
Muestra un error y sale si la configuración de compresión excede el uso de memoria.
límite. El valor predeterminado es ajustar la configuración hacia abajo para que el uso de la memoria
no se supera el límite. El ajuste automático siempre está deshabilitado al crear raw
corrientes--format = raw).

-T hilos, --threads =hilos
Especifique el número de subprocesos de trabajo que se utilizarán. El número real de subprocesos puede ser
menos que hilos si el uso de más subprocesos excedería el límite de uso de memoria.

Multiproceso compresión y descompresión en no implementado sin embargo, so así opción
tiene no efecto para ahora.

As of la escritura (2010-09-27), it no ha esto decidido if hilos seguirá be usado by
tu préstamo estudiantil on multinúcleo sistemas una vez SOPORTE para enhebrar tiene esto implementado.
Comentarios en Bienvenido. El factor de complicación es que el uso de muchos subprocesos
aumentar el uso de la memoria de forma espectacular. Tenga en cuenta que si el subproceso múltiple será el
predeterminado, probablemente se hará de modo que los modos de subproceso único y multiproceso
producir la misma salida, por lo que la relación de compresión no se verá afectada significativamente si
el subproceso estará habilitado de forma predeterminada.

Personalizado compresor filtrar cadenas
Una cadena de filtros personalizada permite especificar la configuración de compresión en detalle en lugar de
confiando en la configuración asociada a los niveles preestablecidos. Cuando una cadena de filtros personalizada es
especificado, las opciones de nivel preestablecido de compresión (-0 ... -9 y --extremo) son silenciosamente
ignorado

Una cadena de filtros es comparable a la instalación de tuberías en la línea de comandos. Al comprimir, el
la entrada sin comprimir va al primer filtro, cuya salida va al siguiente filtro (si
alguna). La salida del último filtro se escribe en el archivo comprimido. El maximo
número de filtros en la cadena es cuatro, pero normalmente una cadena de filtros tiene sólo uno o dos
filtros.

Muchos filtros tienen limitaciones sobre dónde pueden estar en la cadena de filtros: algunos filtros pueden
funcionan solo como el último filtro en la cadena, algunos solo como un filtro no último, y algunos funcionan
en cualquier posición de la cadena. Dependiendo del filtro, esta limitación es inherente
al diseño del filtro o existe para evitar problemas de seguridad.

Una cadena de filtros personalizada se especifica mediante el uso de una o más opciones de filtro en el orden en que
se buscan en la cadena de filtros. Es decir, ¡el orden de las opciones de filtro es significativo!
Al decodificar transmisiones sin procesar (--format = raw), la cadena de filtros se especifica en el mismo orden
como se especificó al comprimir.

Los filtros toman un filtro específico opciones como una lista separada por comas. Comas adicionales en opciones
son ignorados. Cada opción tiene un valor predeterminado, por lo que debe especificar solo las que desee
cambiar.

--lzma1[=opciones]
--lzma2[=opciones]
Agregue un filtro LZMA1 o LZMA2 a la cadena de filtros. Estos filtros solo se pueden utilizar como
el último filtro de la cadena.

LZMA1 es un filtro heredado, que se admite casi exclusivamente debido a la tecnología heredada .lzma
formato de archivo, que solo admite LZMA1. LZMA2 es una versión actualizada de LZMA1 para
solucione algunos problemas prácticos de LZMA1. los .xz El formato usa LZMA2 y no es compatible
LZMA1 en absoluto. La velocidad de compresión y las relaciones de LZMA1 y LZMA2 son prácticamente las
misma.

LZMA1 y LZMA2 comparten el mismo conjunto de opciones:

preset =preestablecido
Restablecer todos los LZMA1 o LZMA2 opciones a preestablecido. Programar consta de un número entero,
que puede ir seguido de modificadores preestablecidos de una sola letra. El entero puede ser
en 0 a 9, haciendo coincidir las opciones de la línea de comandos -0 ... -9. Lo único
El modificador admitido es actualmente e, que coincide --extremo. El valor por defecto
preestablecido is 6, a partir del cual los valores predeterminados para el resto del LZMA1 o
LZMA2 opciones están tomados.

dict =tamaño
Diccionario (búfer de historial) tamaño indica cuántos bytes del reciente
los datos procesados ​​sin comprimir se guardan en la memoria. El algoritmo intenta encontrar
repetir secuencias de bytes (coincidencias) en los datos sin comprimir y reemplazar
ellos con referencias a los datos actualmente en el diccionario. El más grande
el diccionario, mayor es la posibilidad de encontrar una coincidencia. Por lo tanto, aumentando
diccionario tamaño generalmente mejora la relación de compresión, pero un diccionario más grande
que el archivo sin comprimir es una pérdida de memoria.

Diccionario típico tamaño es de 64 KiB a 64 MiB. El mínimo es 4 KiB.
El máximo de compresión es actualmente 1.5 GiB (1536 MiB). los
El descompresor ya admite diccionarios de hasta un byte menos de 4 GiB,
que es el máximo para los formatos de flujo LZMA1 y LZMA2.

Diccionario tamaño y buscador de partidosmf) juntos determinan el uso de memoria de
el codificador LZMA1 o LZMA2. El mismo diccionario (o más grande) tamaño is
requerido para descomprimir que se usó al comprimir, por lo tanto, la memoria
El uso del decodificador está determinado por el tamaño del diccionario utilizado cuando
apresamiento. los .xz los encabezados almacenan el diccionario tamaño ya sea como 2 ^n o 2 ^n
+ 2 ^ (n-1), entonces estos tamaños son algo preferidos para la compresión. Otro
tamaños se redondeará cuando se almacene en el .xz encabezados.

lc =lc Especifique el número de bits de contexto literal. El mínimo es 0 y el
el máximo es 4; el valor predeterminado es 3. Además, la suma de lc y lp no debe
exceder 4.

Todos los bytes que no se pueden codificar como coincidencias se codifican como literales. Ese
es decir, los literales son simplemente bytes de 8 bits que se codifican uno a la vez.

La codificación literal asume que el más alto lc pedazos de la
El byte anterior sin comprimir se correlaciona con el byte siguiente. Por ejemplo, en típico
Texto en inglés, una letra mayúscula a menudo va seguida de una letra minúscula,
y una letra minúscula suele ir seguida de otra letra minúscula.
En el juego de caracteres US-ASCII, los tres bits más altos son 010 para mayúsculas
letras y 011 para letras minúsculas. Cuando lc es al menos 3, el literal
La codificación puede aprovechar esta propiedad en los datos sin comprimir.

El valor predeterminado (3) suele ser bueno. Si quieres la máxima compresión,
test lc = 4. A veces ayuda un poco y a veces hace compresión.
peor. Si lo empeora, prueba, p. Ej. lc = 2

lp =lp Especifique el número de bits de posición literal. El mínimo es 0 y el
el máximo es 4; el valor predeterminado es 0.

Lp afecta qué tipo de alineación en los datos sin comprimir se asume cuando
codificación de literales. Ver pb a continuación para obtener más información sobre la alineación.

pb =pb Especifique el número de bits de posición. El mínimo es 0 y el máximo es 4;
el valor predeterminado es 2.

Pb afecta qué tipo de alineación en los datos sin comprimir se asume en
general. El valor predeterminado significa alineación de cuatro bytes (2 ^pb= 2 ^ 2 = 4), que a menudo es
una buena elección cuando no hay mejor conjetura.

Cuando se conoce la alineación, el ajuste pb en consecuencia, puede reducir el tamaño del archivo
un poquito. Por ejemplo, con archivos de texto con alineación de un byte (US-ASCII,
ISO-8859- *, UTF-8), ajuste pb = 0 puede mejorar la compresión ligeramente. Para
Texto UTF-16, pb = 1 es una buena elección. Si la alineación es un número impar como
3 bytes, pb = 0 podría ser la mejor opción.

Aunque la alineación supuesta se puede ajustar con pb y lp, LZMA1 y
LZMA2 todavía favorece ligeramente la alineación de 16 bytes. Podría valer la pena considerar
cuenta al diseñar formatos de archivo que probablemente se comprimirán a menudo
con LZMA1 o LZMA2.

mf =mf El buscador de coincidencias tiene un efecto importante en la velocidad del codificador, el uso de memoria y
índice de compresión. Por lo general, los buscadores de coincidencias de Hash Chain son más rápidos que los binarios
Buscadores de fósforos de árboles. El valor predeterminado depende de la preestablecido: 0 usos hc3, 1-3 uso
hc4, y el resto usa bt4.

Se admiten los siguientes buscadores de partidos. Las fórmulas de uso de memoria a continuación
son aproximaciones aproximadas, que se acercan más a la realidad cuando dict es un
poder de dos.

hc3 Cadena hash con hash de 2 y 3 bytes
Valor mínimo para agradable: 3
Uso de memoria:
dict * 7.5 (si dict <= 16 MiB);
dict * 5.5 + 64 MiB (si dict > 16 MiB)

hc4 Cadena hash con hash de 2, 3 y 4 bytes
Valor mínimo para agradable: 4
Uso de memoria:
dict * 7.5 (si dict <= 32 MiB);
dict * 6.5 (si dict > 32 MiB)

bt2 Árbol binario con hash de 2 bytes
Valor mínimo para agradable: 2
Uso de memoria: dict * 9.5

bt3 Árbol binario con hash de 2 y 3 bytes
Valor mínimo para agradable: 3
Uso de memoria:
dict * 11.5 (si dict <= 16 MiB);
dict * 9.5 + 64 MiB (si dict > 16 MiB)

bt4 Árbol binario con hash de 2, 3 y 4 bytes
Valor mínimo para agradable: 4
Uso de memoria:
dict * 11.5 (si dict <= 32 MiB);
dict * 10.5 (si dict > 32 MiB)

modo =modo
Compresión modo especifica el método para analizar los datos producidos por el
Buscador de partidos. Soportado los modos en rápido y normal. El valor predeterminado es rápido para
presets 0, 3 y normal para presets 4-9.

Generalmente rápido se utiliza con los buscadores de coincidencias de Hash Chain y normal con binario
Buscadores de fósforos de árboles. Esto es también lo que presets hice.

agradable =agradable
Especifique lo que se considera una longitud adecuada para una coincidencia. Una vez un partido de
al menos agradable bytes, el algoritmo deja de buscar posibles
mejores partidos.

Nice puede tener 2-273 bytes. Los valores más altos tienden a dar una mejor compresión
relación a expensas de la velocidad. El valor predeterminado depende de la preestablecido.

profundidad =profundidad
Especifique la profundidad máxima de búsqueda en el buscador de coincidencias. El predeterminado es el
valor especial de 0, que hace que el compresor determine un valor razonable profundidad
en mf y agradable.

Razonable profundidad para cadenas hash es 4-100 y 16-1000 para árboles binarios.
Usando valores muy altos para profundidad puede hacer que el codificador sea extremadamente lento con
algunos archivos. Evite configurar el profundidad más de 1000 a menos que esté preparado para
interrumpa la compresión en caso de que esté tardando demasiado.

Al decodificar transmisiones sin procesar (--format = raw), LZMA2 solo necesita el diccionario tamaño.
LZMA1 también necesita lc, lpy pb.

--x86[=opciones]
--powerpc[=opciones]
--ia64[=opciones]
--brazo[=opciones]
--brazo[=opciones]
--sparc[=opciones]
Agregue un filtro de rama / llamada / salto (BCJ) a la cadena de filtros. Estos filtros se pueden utilizar
sólo como un último filtro en la cadena de filtros.

Un filtro BCJ convierte direcciones relativas en el código de máquina a su absoluta
contrapartes. Esto no cambia el tamaño de los datos, pero aumenta
redundancia, que puede ayudar a LZMA2 a producir un 0-15% más pequeño .xz expediente. El BCJ
Los filtros siempre son reversibles, por lo que el uso de un filtro BCJ para el tipo incorrecto de datos no
causar pérdida de datos, aunque puede empeorar ligeramente la relación de compresión.

Está bien aplicar un filtro BCJ en todo un ejecutable; no hay necesidad de aplicarlo
solo en la sección ejecutable. Aplicar un filtro BCJ en un archivo que contiene
tanto los archivos ejecutables como los no ejecutables pueden o no dar buenos resultados, por lo que
generalmente no es bueno aplicar ciegamente un filtro BCJ al comprimir paquetes binarios
para distribución.

Estos filtros BCJ son muy rápidos y utilizan una cantidad insignificante de memoria. Si un BCJ
El filtro mejora la relación de compresión de un archivo, puede mejorar la velocidad de descompresión en
al mismo tiempo. Esto se debe a que, en el mismo hardware, la velocidad de descompresión de
LZMA2 es aproximadamente un número fijo de bytes de datos comprimidos por segundo.

Estos filtros BCJ tienen problemas conocidos relacionados con la relación de compresión:

· Algunos tipos de archivos que contienen código ejecutable (por ejemplo, archivos de objeto,
bibliotecas y módulos del kernel de Linux) tienen las direcciones en las instrucciones
lleno de valores de relleno. Estos filtros BCJ seguirán haciendo la dirección
conversión, lo que empeorará la compresión con estos archivos.

· La aplicación de un filtro BCJ en un archivo que contiene varios ejecutables similares puede
empeora la relación de compresión que no utilizar un filtro BCJ. Esto es porque
el filtro BCJ no detecta los límites de los archivos ejecutables, y
no restablece el contador de conversión de direcciones para cada ejecutable.

Ambos problemas anteriores se solucionarán en el futuro con un nuevo filtro. El viejo
Los filtros BCJ seguirán siendo útiles en sistemas embebidos, porque el decodificador del
el nuevo filtro será más grande y utilizará más memoria.

Los diferentes conjuntos de instrucciones tienen una alineación diferente:

Notas de alineación de filtros
x86 1 x32 de 64 o 86 bits
PowerPC 4 Big endian solamente
BRAZO 4 Little endian solamente
ARM-Thumb 2 solo Little endian
IA-64 16 Endian grande o pequeño
SPARC 4 Endian grande o pequeño

Dado que los datos filtrados por BCJ generalmente se comprimen con LZMA2, la relación de compresión
puede mejorarse ligeramente si las opciones de LZMA2 se configuran para que coincidan con la alineación de la
filtro BCJ seleccionado. Por ejemplo, con el filtro IA-64, es bueno configurar pb = 4
con LZMA2 (2 ^ 4 = 16). El filtro x86 es una excepción; por lo general es bueno ceñirse a
Alineación de cuatro bytes predeterminada de LZMA2 al comprimir ejecutables x86.

Todos los filtros BCJ admiten lo mismo opciones:

inicio =compensar
Especifica el inicio compensar que se utiliza al convertir entre relativo y
direcciones absolutas. los compensar debe ser un múltiplo de la alineación del
filtro (consulte la tabla anterior). El valor predeterminado es cero. En la práctica, el
el valor predeterminado es bueno; especificando una costumbre compensar casi nunca es útil.

--delta[=opciones]
Agregue el filtro Delta a la cadena de filtros. El filtro Delta solo se puede utilizar como
no último filtro en la cadena de filtros.

Actualmente, solo se admite el cálculo delta simple por bytes. Puede ser útil
al comprimir, por ejemplo, imágenes de mapa de bits sin comprimir o audio PCM sin comprimir.
Sin embargo, los algoritmos de propósito especial pueden dar resultados significativamente mejores que
Delta + LZMA2. Esto es cierto especialmente con el audio, que se comprime más rápido y
mejor por ejemplo con flac(1).

Soportado opciones:

dist =distancia
Especifica el distancia del cálculo delta en bytes. distancia debe ser
1-256. El valor predeterminado es 1.

Por ejemplo, con dist = 2 y entrada de ocho bytes A1 B1 A2 B3 A3 B5 A4 B7, el
la salida será A1 B1 01 02 01 02 01 02.

Otro opciones
-q, --tranquilo
Suprima advertencias y avisos. Especifique esto dos veces para suprimir errores también. Esta
La opción no tiene ningún efecto sobre el estado de salida. Es decir, incluso si una advertencia fue
suprimido, el estado de salida para indicar una advertencia todavía se utiliza.

-v, --verboso
Sea prolijo. Si el error estándar está conectado a un terminal, xz mostrará un
indicador de progreso. Especificando --verboso dos veces dará un resultado aún más detallado.

El indicador de progreso muestra la siguiente información:

· El porcentaje de finalización se muestra si se conoce el tamaño del archivo de entrada. Es decir,
el porcentaje no se puede mostrar en tuberías.

· Cantidad de datos comprimidos producidos (comprimiendo) o consumidos (descomprimiendo).

· Cantidad de datos descomprimidos consumidos (comprimidos) o producidos (descomprimidos).

· Relación de compresión, que se calcula dividiendo la cantidad de datos comprimidos
procesados ​​hasta ahora por la cantidad de datos sin comprimir procesados ​​hasta ahora.

· Velocidad de compresión o descompresión. Esto se mide como la cantidad de
datos sin comprimir consumidos (compresión) o producidos (descompresión) por segundo.
Se muestra después de que hayan pasado unos segundos desde xz comenzó a procesar el
archivo.

· Tiempo transcurrido en el formato M: SS o H: MM: SS.

· El tiempo restante estimado se muestra solo cuando se conoce el tamaño del archivo de entrada
y ya han pasado un par de segundos desde xz comenzó a procesar el
expediente. La hora se muestra en un formato menos preciso que nunca tiene dos puntos,
por ejemplo, 2 min 30 s.

Cuando el error estándar no es un terminal, --verboso hará xz imprime el nombre del archivo,
tamaño comprimido, tamaño sin comprimir, relación de compresión y posiblemente también la velocidad
y el tiempo transcurrido en una sola línea hasta el error estándar después de comprimir o
descomprimir el archivo. La velocidad y el tiempo transcurrido se incluyen solo cuando el
la operación tomó al menos unos segundos. Si la operación no terminó, por ejemplo, debido a
interrupción del usuario, también se imprime el porcentaje de finalización si el tamaño del
El archivo de entrada es conocido.

-Q, --no advertir
No establezca el estado de salida en 2 incluso si se detectó una condición que valga la pena.
Esta opción no afecta el nivel de verbosidad, por lo tanto, tanto --tranquilo y --no advertir
deben usarse para no mostrar advertencias y no alterar el estado de salida.

--robot
Imprima mensajes en un formato analizable por máquina. Esto está destinado a facilitar la escritura.
frontends que quieren usar xz en lugar de liblzma, que puede ser el caso con
varios guiones. La salida con esta opción habilitada está destinada a ser estable en
xz lanzamientos. Ver la sección ROBOT MODO para obtener más detalles.

--info-memoria
Muestra, en formato legible por humanos, cuánta memoria física (RAM) xz piensa el
tiene el sistema y los límites de uso de memoria para compresión y descompresión, y salida
con éxito garantizado.

-h, --ayuda
Muestre un mensaje de ayuda que describa las opciones más utilizadas y salga
con éxito garantizado.

-H, ayuda larga
Muestra un mensaje de ayuda que describe todas las funciones de xzy salir con éxito

-V, --versión
Muestra el número de versión de xz y liblzma en formato legible por humanos. Llegar
salida analizable por máquina, especificar --robot antes --versión.

ROBOT MODO


El modo robot se activa con el --robot opción. Hace que la salida de xz más fácil
analizar por otros programas. En la actualidad --robot es compatible solo junto con --versión,
--info-memoriay --lista. Será compatible con la compresión y descompresión normales.
en el futuro.

Versión
xz --robot --versión imprimirá el número de versión de xz y liblzma en el siguiente
formato:

XZ_VERSION =XYYZZZS
LIBLZMA_VERSION =XYYZZZS

X Versión principal.

YYY Versión menor. Incluso los números son estables. Los números impares son versiones alfa o beta.

ZZZ Nivel de parche para versiones estables o simplemente un contador para versiones en desarrollo.

S Estabilidad. 0 es alfa, 1 es beta y 2 es estable. S debe ser siempre 2 cuando YYY
incluso.

XYYZZZS son iguales en ambas líneas si xz y liblzma son de la misma versión de XZ Utils.

Ejemplos: 4.999.9beta es 49990091 y 5.0.0 es 50000002.

Salud Cerebral límitar información
xz --robot --info-memoria imprime una sola línea con tres columnas separadas por tabulaciones:

1. Cantidad total de memoria física (RAM) en bytes

2. Límite de uso de memoria para compresión en bytes. Un valor especial de cero indica la
configuración predeterminada, que para el modo de un solo subproceso es lo mismo que sin límite.

3. Límite de uso de memoria para descompresión en bytes. Un valor especial de cero indica la
configuración predeterminada, que para el modo de un solo subproceso es lo mismo que sin límite.

En el futuro, la salida de xz --robot --info-memoria puede tener más columnas, pero nunca
más de una sola línea.

Lista modo
xz --robot --lista utiliza salida separada por tabuladores. La primera columna de cada línea tiene una cadena
que indica el tipo de información que se encuentra en esa línea:

nombre Esta es siempre la primera línea al comenzar a listar un archivo. La segunda columna en
la línea es el nombre del archivo.

presentar Esta línea contiene información general sobre el .xz expediente. Esta linea es siempre
impreso después del nombre la línea.

stream Este tipo de línea se usa solo cuando --verboso fue especificado. Hay tantos stream
líneas ya que hay corrientes en el .xz archivo.

bloquear Este tipo de línea se usa solo cuando --verboso fue especificado. Hay tantos bloquear
líneas ya que hay bloques en el .xz archivo. los bloquear Las lneas se muestran despus de todas las
stream líneas; los diferentes tipos de línea no están intercalados.

resumen
Este tipo de línea se usa solo cuando --verboso se especificó dos veces. Esta linea es
impreso después de todo bloquear líneas. Como el presentar línea, la resumen la línea contiene
información general sobre el .xz archivo.

totales Esta línea es siempre la última línea de la salida de la lista. Muestra el total
recuentos y tamaños.

Las columnas del presentar líneas:
2. Número de transmisiones en el archivo
3. Número total de bloques en las transmisiones
4. Tamaño comprimido del archivo
5. Tamaño del archivo sin comprimir
6. Relación de compresión, por ejemplo 0.123. Si la proporción es superior a 9.999, tres guiones
(. . . ) se muestran en lugar de la relación.
7. Lista de nombres de verificación de integridad separados por comas. Se utilizan las siguientes cadenas
para los tipos de cheques conocidos: Ninguna, CRC32, CRC64y SHA-256. Para cheque desconocido
tipos Desconocido-N se usa, donde N es el ID del cheque como un número decimal (uno o
dos dígitos).
8. Tamaño total del relleno de flujo en el archivo

Las columnas del stream líneas:
2. Número de transmisión (la primera transmisión es 1)
3. Número de bloques en la secuencia
4. Desplazamiento de inicio comprimido
5. Desplazamiento de inicio sin comprimir
6. Tamaño comprimido (no incluye relleno de flujo)
7. Tamaño sin comprimir
8. Relación de compresión
9. Nombre de la verificación de integridad
10. Tamaño del relleno de flujo

Las columnas del bloquear líneas:
2. Número de la secuencia que contiene este bloque
3. Número de bloque relativo al comienzo de la transmisión (el primer bloque es 1)
4. Número de bloque relativo al comienzo del archivo
5. Desplazamiento de inicio comprimido relativo al inicio del archivo
6. Desplazamiento de inicio sin comprimir relativo al inicio del archivo
7. Tamaño comprimido total del bloque (incluye encabezados)
8. Tamaño sin comprimir
9. Relación de compresión
10. Nombre de la verificación de integridad

If --verboso se especificó dos veces, se incluyen columnas adicionales en el bloquear líneas.
Estos no se muestran con un solo --verboso, porque obtener esta información requiere
muchos buscan y por tanto pueden ser lentos:
11. Valor de la verificación de integridad en hexadecimal
12. Tamaño del encabezado del bloque
13. Banderas de bloque: c indica que el tamaño comprimido está presente, y u indica que
está presente el tamaño sin comprimir. Si la bandera no está configurada, un guión (-) se muestra
en su lugar, para mantener fija la longitud de la cuerda. Se pueden agregar nuevas banderas al final de
la cuerda en el futuro.
14. Tamaño de los datos comprimidos reales en el bloque (esto excluye el bloque
encabezado, relleno de bloque y campos de verificación)
15. Cantidad de memoria (en bytes) necesaria para descomprimir este bloque con este xz
versión
16. Cadena de filtros. Tenga en cuenta que la mayoría de las opciones utilizadas en el momento de la compresión no se pueden
conocido, porque solo las opciones que se necesitan para la descompresión se almacenan en
las .xz encabezados.

Las columnas del resumen líneas:
2. Cantidad de memoria (en bytes) necesaria para descomprimir este archivo con este xz
versión
3. si or no indicando si todos los encabezados de bloque tienen tanto tamaño comprimido como
tamaño sin comprimir almacenado en ellos
Como xz 5.1.2 alfa:
4. Mínimo xz versión requerida para descomprimir el archivo

Las columnas del totales línea:
2. Número de transmisiones
3. Número de bloques
4. Tamaño comprimido
5. Tamaño sin comprimir
6. Relación de compresión promedio
7. Lista separada por comas de los nombres de verificación de integridad que estaban presentes en los archivos
8. Tamaño de relleno de flujo
9. Número de archivos. Esto es aquí para mantener el orden de las columnas anteriores
lo mismo que en presentar líneas.

If --verboso se especificó dos veces, se incluyen columnas adicionales en el totales línea:
10. Cantidad máxima de memoria (en bytes) requerida para descomprimir los archivos con este
xz versión
11. si or no indicando si todos los encabezados de bloque tienen tanto tamaño comprimido como
tamaño sin comprimir almacenado en ellos
Como xz 5.1.2 alfa:
12. Mínimo xz versión requerida para descomprimir el archivo

Las versiones futuras pueden agregar nuevos tipos de línea y se pueden agregar nuevas columnas a la línea existente
tipos, pero las columnas existentes no se cambiarán.

SALIR ESTADO


0 Todo es bueno.

1 Se produjo un error.

2 Se produjo algo digno de ser advertido, pero no se produjeron errores reales.

Los avisos (no las advertencias ni los errores) impresos en el error estándar no afectan el estado de salida.

MEDIO AMBIENTE


xz analiza listas de opciones separadas por espacios de las variables de entorno XZ_DEFAULTS y
XZ_OPT, en este orden, antes de analizar las opciones desde la línea de comando. Tenga en cuenta que solo
las opciones se analizan a partir de las variables de entorno; todas las no opciones se ignoran en silencio.
El análisis se realiza con getopt_long(3) que también se utiliza para los argumentos de la línea de comandos.

XZ_DEFAULTS
Opciones predeterminadas específicas del usuario o de todo el sistema. Por lo general, esto se establece en un shell
secuencia de comandos de inicialización para habilitar xzLimitador de uso de memoria de forma predeterminada. Excluyendo
scripts de inicialización de shell y casos especiales similares, los scripts nunca deben establecerse o
desarmado XZ_DEFAULTS.

XZ_OPT Esto es para pasar opciones a xz cuando no es posible configurar las opciones
directamente en el xz línea de comando. Este es el caso, por ejemplo, cuando xz es ejecutado por un script
o herramienta, por ejemplo, GNU alquitrán(1):

XZ_OPT = -2v tar caf foo.tar.xz foo

Los scripts pueden usar XZ_OPT por ejemplo, para establecer opciones de compresión predeterminadas específicas del script. Eso
todavía se recomienda para permitir a los usuarios anular XZ_OPT si eso es razonable, por ejemplo
in sh(1) secuencias de comandos que uno puede usar algo como esto:

XZ_OPT = $ {XZ_OPT - "- 7e"}
exportar XZ_OPT

LZMA UTILES COMPATIBILIDAD


La sintaxis de la línea de comandos de xz es prácticamente un superconjunto de lzma, unlzmay lzcat as
que se encuentra en LZMA Utils 4.32.x. En la mayoría de los casos, es posible reemplazar LZMA Utils con XZ
Utilidades sin romper los scripts existentes. Sin embargo, existen algunas incompatibilidades que
a veces puede causar problemas.

Compresión preestablecido
La numeración de los niveles de compresión preestablecidos no es idéntica en xz y LZMA Utils. los
La diferencia más importante es cómo se asignan los tamaños de diccionario a diferentes ajustes preestablecidos.
El tamaño del diccionario es aproximadamente igual al uso de la memoria del descompresor.

Nivel xz LZMA Utils
-0 256 KiB N / A
-1 1 MiB 64 KiB
-2 2 MB 1 MB
-3 4 MiB 512 KiB
-4 4 MB 1 MB
-5 8 MB 2 MB
-6 8 MB 4 MB
-7 16 MB 8 MB
-8 32 MB 16 MB
-9 64 MB 32 MB

Las diferencias de tamaño del diccionario también afectan el uso de la memoria del compresor, pero hay algunas
otras diferencias entre LZMA Utils y XZ Utils, que hacen que la diferencia sea aún mayor:

Nivel xz LZMA Utils 4.32.x
-0 3 MiB N / A
-1 9 MB 2 MB
-2 17 MB 12 MB
-3 32 MB 12 MB
-4 48 MB 16 MB
-5 94 MB 26 MB
-6 94 MB 45 MB
-7 186 MB 83 MB
-8 370 MB 159 MB
-9 674 MB 311 MB

El nivel preestablecido predeterminado en LZMA Utils es -7 mientras que en XZ Utils es -6, entonces ambos usan un 8
Diccionario MiB por defecto.

streaming vs no transmitido .lzma archivos
El tamaño sin comprimir del archivo se puede almacenar en el .lzma encabezamiento. LZMA Utils hace eso
al comprimir archivos normales. La alternativa es marcar que el tamaño sin comprimir es
desconocido y utilice un marcador de final de carga útil para indicar dónde debe detenerse el descompresor.
LZMA Utils utiliza este método cuando se desconoce el tamaño sin comprimir, que es el caso de
ejemplo en tuberías.

xz apoya la descompresión .lzma archivos con o sin marcador de final de carga útil, pero todos .lzma
archivos creados por xz usará un marcador de final de carga útil y tendrá un tamaño sin comprimir marcado como
desconocido en el .lzma encabezamiento. Esto puede ser un problema en algunas situaciones poco comunes. Para
ejemplo, un .lzma descompresor en un dispositivo integrado puede funcionar solo con archivos que tienen
tamaño conocido sin comprimir. Si tiene este problema, debe usar LZMA Utils o LZMA SDK
crear .lzma archivos con tamaño conocido sin comprimir.

No compatible .lzma archivos
El .lzma el formato permite lc valores hasta 8, y lp valores de hasta 4. LZMA Utils puede
descomprimir archivos con cualquier lc y lp, pero siempre crea archivos con lc = 3 y lp = 0.
Creando archivos con otros lc y lp es posible con xz y con LZMA SDK.

La implementación del filtro LZMA1 en liblzma requiere que la suma de lc y lp debe
no exceder de 4. Por lo tanto, .lzma Los archivos que superen esta limitación no se pueden descomprimir.
xz.

LZMA Utils crea solo .lzma archivos que tienen un tamaño de diccionario de 2 ^n (una potencia de 2) pero
acepta archivos con cualquier tamaño de diccionario. liblzma solo acepta .lzma archivos que tienen un
tamaño de diccionario de 2 ^n o 2 ^n + 2 ^ (n-1). Esto es para disminuir los falsos positivos cuando
detector .lzma archivos.

Estas limitaciones no deberían ser un problema en la práctica, ya que prácticamente todos .lzma archivos
se han comprimido con la configuración que aceptará liblzma.

arrastrando basura
Al descomprimir, LZMA Utils ignora silenciosamente todo después de la primera .lzma arroyo.
En la mayoría de situaciones, esto es un error. Esto también significa que LZMA Utils no admite
descomprimir concatenados .lzma archivos.

Si quedan datos después de la primera .lzma corriente, xz considera que el archivo está dañado
a menos que - de un solo flujo se utilizó. Esto puede romper los scripts oscuros que han asumido que
la basura que se arrastra se ignora.

NOTAS


Comprimido salida podrían variará
La salida comprimida exacta producida a partir del mismo archivo de entrada sin comprimir puede variar
entre las versiones de XZ Utils incluso si las opciones de compresión son idénticas. Esto se debe a que
El codificador se puede mejorar (compresión más rápida o mejor) sin afectar el formato del archivo.
La salida puede variar incluso entre diferentes compilaciones de la misma versión de XZ Utils, si
se utilizan diferentes opciones de construcción.

Lo anterior significa que implementar --rsyncable para crear rsyncable .xz los archivos no van
que suceda sin congelar una parte de la implementación del codificador, que luego se puede utilizar
--rsyncable.

Embedded .xz descompresores
Embedded .xz Las implementaciones de descompresor como XZ Embedded no necesariamente admiten archivos
creado con integridad comprobar tipos distintos a ninguna y crc32. Dado que el valor predeterminado es
--check = crc64, debes usar --check = ninguno or --check = crc32 al crear archivos para incrustados
.

Fuera de los sistemas integrados, todos .xz Los descompresores de formato admiten todos los comprobar tipos, o en
al menos pueden descomprimir el archivo sin verificar la verificación de integridad si el
particular comprobar no es apoyado.

XZ Embedded admite filtros BCJ, pero solo con el desplazamiento de inicio predeterminado.

EJEMPLOS


conceptos básicos
Comprimir el archivo foo dentro foo.xz usando el nivel de compresión predeterminado (-6) y eliminar foo
si la compresión es exitosa:

xz foo

Descomprimir bar.xz dentro de caramelos y no quites bar.xz incluso si la descompresión tiene éxito:

xz -dk bar.xz

Crear baz.tar.xz con el preajuste -4e (-4 --extremo), que es más lento que, por ejemplo, el
tu préstamo estudiantil -6, pero necesita menos memoria para la compresión y descompresión (48 MiB y 5 MiB,
respectivamente):

tar cf - baz | xz -4e> baz.tar.xz

Una combinación de archivos comprimidos y sin comprimir se puede descomprimir en una salida estándar con un
comando único:

xz -dcf a.txt b.txt.xz c.txt d.txt.lzma> abcd.txt

Paralelo compresión of muchos archivos
En GNU y * BSD, encontrar(1) y xargs(1) se puede utilizar para paralelizar la compresión de muchos
archivos:

encontrar . -tipo f \! -nombre '* .xz' -print0 \
| xargs -0r -P4 -n16 xz -T1

El -P opción de xargs(1) establece el número de paralelos xz Procesos. El mejor valor para
las -n La opción depende de cuántos archivos se vayan a comprimir. Si solo hay un
un par de archivos, el valor probablemente debería ser 1; con decenas de miles de archivos, 100 o
incluso más puede ser apropiado para reducir el número de xz procesos que xargs(1) voluntad
eventualmente crear.

La opción -T1 para xz está ahí para forzarlo al modo de un solo subproceso, porque xargs(1) es
utilizado para controlar la cantidad de paralelización.

Robot modo
Calcule cuántos bytes se han guardado en total después de comprimir varios archivos:

xz --robot --list * .xz | awk '/ ^ totales / {imprimir $ 5- $ 4}'

Es posible que una secuencia de comandos desee saber que está usando lo suficientemente nuevo. xz. El seguimiento sh(1) guión
comprueba que el número de versión del xz herramienta es al menos 5.0.0. Este método es
compatible con versiones beta antiguas, que no admitían el --robot opción:

si ! eval "$ (xz --robot --version 2> / dev / null)" ||
["$ XZ_VERSION" -lt 50000002]; luego
echo "Tu xz es demasiado viejo".
fi
anular XZ_VERSION LIBLZMA_VERSION

Establezca un límite de uso de memoria para la descompresión mediante XZ_OPT, pero si ya se ha establecido un límite
establecer, no lo aumente:

NEWLIM = $ ((123 << 20)) # 123 MiB
OLDLIM = $ (xz --robot --info-memory | cut -f3)
si [$ OLDLIM -eq 0 -o $ OLDLIM -gt $ NEWLIM]; luego
XZ_OPT = "$ XZ_OPT --memlimit-decompress = $ NEWLIM"
exportar XZ_OPT
fi

Personalizado compresor filtrar cadenas
El uso más simple para las cadenas de filtros personalizadas es personalizar un ajuste preestablecido de LZMA2. Esto puede ser
útil, porque los ajustes preestablecidos cubren solo un subconjunto de las combinaciones potencialmente útiles de
ajustes de compresión.

Las columnas CompCPU de las tablas de las descripciones de las opciones -0 ... -9 y
--extremo son útiles al personalizar los ajustes preestablecidos de LZMA2. Aquí están las partes relevantes
recopilados de esas dos tablas:

CompCPU preestablecido
-0 0
-1 1
-2 2
-3 3
-4 4
-5 5
-6 6
-5e 7
-6e 8

Si sabe que un archivo requiere un diccionario algo grande (por ejemplo, 32 MiB) para comprimir bien,
pero quieres comprimirlo más rápido que xz -8 haría, un ajuste preestablecido con un valor bajo de CompCPU
(por ejemplo, 1) se puede modificar para usar un diccionario más grande:

xz --lzma2 = preset = 1, dict = 32MiB foo.tar

Con ciertos archivos, el comando anterior puede ser más rápido que xz -6 mientras comprime
significativamente mejor. Sin embargo, debe enfatizarse que solo algunos archivos se benefician de una
diccionario grande manteniendo el valor de CompCPU bajo. La situación más obvia, donde un
gran diccionario puede ayudar mucho, es un archivo que contiene archivos muy similares de al menos un
unos pocos megabytes cada uno. El tamaño del diccionario debe ser significativamente mayor que cualquier otro.
archivo individual para permitir que LZMA2 aproveche al máximo las similitudes entre
archivos consecutivos.

Si el uso de memoria de compresor y descompresor muy alto está bien, y el archivo que se está
comprimido es de al menos varios cientos de megabytes, puede ser útil utilizar un
diccionario que los 64 MiB que xz -9 usaría:

xz -vv --lzma2 = dict = 192MiB big_foo.tar

Usar -vv (--verboso --verboso) como en el ejemplo anterior puede ser útil para ver la memoria
requisitos del compresor y descompresor. Recuerda que usando un diccionario más grande
que el tamaño del archivo sin comprimir es un desperdicio de memoria, por lo que el comando anterior no es
útil para archivos pequeños.

A veces, el tiempo de compresión no importa, pero el uso de la memoria del descompresor debe ser
se mantiene bajo, por ejemplo, para que sea posible descomprimir el archivo en un sistema integrado. los
el siguiente comando usa -6e (-6 --extremo) como base y configura el diccionario solo para
64 KiB. El archivo resultante se puede descomprimir con XZ Embedded (por eso hay
--check = crc32) utilizando alrededor de 100 KiB de memoria.

xz --check = crc32 --lzma2 = preset = 6e, dict = 64KiB foo

Si desea exprimir tantos bytes como sea posible, ajuste el número de literal
bits de contextolc) y número de bits de posición (pb) a veces puede ayudar. Ajustando el
número de bits de posición literal (lp) también podría ayudar, pero por lo general lc y pb son mas
importante. Por ejemplo, un archivo de código fuente contiene principalmente texto US-ASCII, así que algo como
lo siguiente puede dar un archivo ligeramente (como 0.1%) más pequeño que xz -6e (prueba también sin
lc = 4):

xz --lzma2 = preset = 6e, pb = 0, lc = 4 código_fuente.tar

El uso de otro filtro junto con LZMA2 puede mejorar la compresión con ciertos tipos de archivos.
Por ejemplo, para comprimir una biblioteca compartida x86-32 o x86-64 utilizando el filtro BCJ x86:

xz --x86 --lzma2 libfoo.so

Tenga en cuenta que el orden de las opciones de filtro es significativo. Si --x86 se especifica después de
--lzma2, xz dará un error, porque no puede haber ningún filtro después de LZMA2, y también
porque el filtro BCJ x86 no se puede utilizar como último filtro de la cadena.

El filtro Delta junto con LZMA2 puede dar buenos resultados con imágenes de mapa de bits. Debería
generalmente vence a PNG, que tiene algunos filtros más avanzados que el delta simple pero usa Deflate
para la compresión real.

La imagen debe guardarse en formato sin comprimir, por ejemplo, como TIFF sin comprimir. La distancia
El parámetro del filtro Delta se establece para que coincida con el número de bytes por píxel en la imagen.
Por ejemplo, necesita un mapa de bits RGB de 24 bits dist = 3, y también es bueno pasar pb = 0 a LZMA2 a
acomodar la alineación de tres bytes:

xz --delta = dist = 3 --lzma2 = pb = 0 foo.tiff

Si se han colocado varias imágenes en un solo archivo (p. Ej. .alquitrán), el filtro Delta
trabaje en eso también siempre que todas las imágenes tengan el mismo número de bytes por píxel.

Utilice xzcat en línea utilizando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad