GZIP(1) GZIP(1)
NOMBRE
gzip, gunzip, zcat - comprimen o expanden ficheros
SINOPSIS
gzip [ -acdfhlLnNrtvV19 ] [-S sufijo] [ nombre ... ]
gunzip [ -acfhlLnNrtvV ] [-S sufijo] [ nombre ... ]
zcat [ -fhLV ] [ nombre ... ]
DESCRIPCIÓN
El programa gzip reduce el tamaño de los ficheros dados mediante el
algoritmo de compresión de Lempel-Ziv (LZ77). Cuando es posible, cada
fichero se reemplaza por otro con la extensión .gz, manteniéndose los
mismos permisos, propietarios y tiempos de modificación. (La extensión
predeterminada es -gz para VMS, y z para MSDOS, la FAT de OS/2, la FAT
de Windows NT, y Atari.) Si no se da ningún fichero, o si un nombre de
fichero es "-", se lee de la entrada estándar, que se comprime y se
manda el resultado a la salida estándar. El programa gzip sólo
intentará comprimir ficheros regulares. En particular, no hará nada
con enlaces simbólicos.
Si el nombre del fichero comprimido es demasiado largo para su sistema
de ficheros, gzip lo trunca. Gzip intenta truncar solamente las partes
del nombre del fichero que sean de más de 3 caracteres. (El delimitador
de las partes es el punto.) Si el nombre consiste solamente en partes
pequeñas, se truncan las mayores. Por ejemplo, si los nombres de
ficheros están limitados a 14 caracteres, gzip.msdos.exe se comprime a
gzi.msd.exe.gz. Los nombres no se truncan en sistemas que no tienen un
límite respecto a la longitud de nombres de ficheros.
Por omisión, gzip mantiene el nombre de fichero original, así como los
tiempos de acceso, etc., en el fichero comprimido. Estos datos se
emplean cuando se descomprime el fichero con la opción -N. Esto es
útil cuando el nombre de fichero comprimido se truncó o cuando los
tiempos no se preservaron después de una transferencia.
Los ficheros comprimidos pueden restaurarse a su forma original
mediante gzip -d o gunzip o zcat. Si el nombre original guardado en el
fichero comprimido no es adecuado para su sistema de ficheros, se
construye un nuevo nombre a partir del original de forma que sea válido
para este sistema de ficheros.
El programa gunzip toma una lista de ficheros en su línea de órdenes y
reemplaza cada uno de ellos cuyo nombre acabe en .gz, -gz, .z, -z, _z o
.Z, y que empiece con el número mágico correcto, con un fichero
descomprimido sin la extensión original. gunzip también reconoce las
extensiones especiales .tgz y .taz como abreviaturas de .tar.gz y de
.tar.Z respectivamente. Cuando comprime, gzip emplea la extensión .tgz
si es necesario en vez de truncar el nombre de un fichero con una
extensión .tar.
gunzip puede en la actualidad descomprimir ficheros creados por gzip,
zip, compress, compress -H o pack. La detección del formato de la
entrada es automática. Cuando se utilicen los dos primeros formatos,
gunzip prueba un CRC de 32 bits. Para pack, gunzip comprueba la
longitud sin comprimir. El formato estándar de compress no fue diseñado
para permitir pruebas de consistencia. Sin embargo, gunzip es capaz a
veces de detectar un fichero .Z malo. Si obtenemos un error cuando
descomprimimos un fichero .Z, no debemos suponer que el fichero .Z es
correcto simplemente porque el uncompress estándar no protesta. Esto
significa generalmente que el uncompress estándar no comprueba su
entrada, y genera basura en la salida sin preocuparse de más. El
formato del compress -H de SCO (método de compresión lzh) no incluye un
CRC pero también permite algunas pruebas de consistencia.
Los ficheros creados por zip pueden descomprimirse con gzip sólo si
tienen un solo miembro comprimido con el método de `deflación'. Esta
característica se añadió solamente para ayudar en la conversión de
ficheros .tar.zip al formato .tar.gz. Para extraer ficheros zip con
varios miembros, emplee unzip en vez de gunzip.
zcat es idéntico a gunzip -c. (En algunos sistemas, zcat puede haberse
instalado como gzcat para preservar el enlace original a compress.)
zcat descomprime tanto una lista de ficheros en la línea de órdenes o
su entrada estándar, y escribe los datos descomprimidos en la salida
estándar. zcat descomprimirá ficheros que tengan el número mágico
correcto tanto si tienen un sufijo .gz como si no.
Gzip emplea el algoritmo de Lempel-Zip usado en zip y PKZIP. La
cantidad de compresión obtenida depende del tamaño de la entrada y de
la distribución de subcadenas de caracteres comunes. Típicamente,
texto en inglés o código fuente se reduce en un porcentaje del 60 al
70%. La commpresión es por lo general mucho mejor que la que se
obtiene con LZW (que es lo que se usa en compress), la codificación de
Huffman (lo que se usa en pack), o el código de Huffman adaptativo
(usado en compact).
La compresión siempre se realiza, aunque el fichero comprimido resulte
algo mayor que el original. La expansión en el peor caso es de unos
pocos bytes para la cabecera del fichero gzip, más 5 bytes cada bloque
de 32 kB, o una relación de expansión del 0,015% para ficheros grandes.
Observe que el número de bloques de disco usados realmente casi nunca
se incrementa. gzip preserva el modo, propietarios y tiempos de los
ficheros, cuando comprime o cuando descomprime.
OPCIONES
-a --ascii
Modo de texto ASCII: convierte los saltos de línea según los
convenios locales. Esta opción se admite solamente en algunos
sistemas no Unix. Para MS-DOS, CR LF se convierten a LF cuando
se comprime, y LF se convierte a CR LF al descomprimir.
-c --stdout --to-stdout
Escribe la salida en la salida estándar; deja los ficheros
originales tal cuales. Si hay varios ficheros de entrada, la
salida consiste en una secuencia de miembros comprimidos
independientemente. Para conseguir una mejor compresión,
concatene todos los ficheros de entrada antes de comprimirlos.
-d --decompress --uncompress
Descomprime.
-f --force
Fuerza la compresión o descompresión incluso si el fichero tiene
varios enlaces o si el fichero correspondiente ya existe, o si
los datos comprimidos se leen de, o se escriben en, una
terminal. Si los datos de entrada no están en un formato
reconocido por gzip, y si se ha dado también la opción --stdout,
copia los datos de entrada a la salida estándar sin cambiarlos:
entonces zcat se comporta como cat. Si no se da la opción -f y
no se está en segundo plano, gzip pide verificación si un
fichero existente está a punto de sobreescribirse.
-h --help
Muestra una pantalla de ayuda y acaba.
-l --list
Para cada fichero comprimido, lista los siguientes campos:
compressed: el tamaño del fichero comprimido
uncompr: el tamaño del fichero descomprimido
ratio: relación de compresión (0.0% si no se conoce)
uncompressed_name: nombre del fichero descomprimido
El tamaño descomprimido se da como -1 para ficheros que no estén
en formato de gzip, como los ficheros comprimidos .Z. Para
obtener el tamaño descomprimido para un fichero así, puede
emplearse:
zcat file.Z | wc -c
Si además se da la opción --verbose, se muestran asimismo los
siguientes campos:
method: método de compresión
crc: el CRC de 32 bits de los datos descomprimidos
date & time: tiempos del fichero descomprimido
Los métodos de compresión aceptados actualmente son el hinchado
o deflación, compresión, lzh (compress -H de SCO) y empaquetado.
El CRC se da como ffffffff para un fichero que no esté en el
formato de gzip.
Con --name, el nombre descomprimido, fecha y hora, son los
guardados en el fichero comprimido si está presente.
Con --verbose, también se muestran los totales de tamaño y
relación de compresión para todos los ficheros, a menos que
algunos tamaños se desconozcan. Con --quiet, el título y los
totales no se muestran.
-L --license
Muestra la licencia de uso de gzip y acaba.
-n --no-name
Cuando comprime, no guarda de forma predeterminada el nombre
original del fichero y sus tiempos de acceso y demás. (El nombre
original siempre se guarda si ha de truncarse.) Cuando
descomprime, no restaura el nombre de fichero original si está
presente (quita solamente el sufijo de gzip del nombre de
fichero comprimido) y no restaura las marcas de tiempo
originales si están presentes (las copia del fichero
comprimido). Esta opción está activa por omisión cuando
descomprime.
-N --name
Al comprimir, siempre guarda el nombre de fichero original y las
marcas de tiempo; este comportamiento es el predeterminado. Al
descomprimir, restaura el nombre de fichero original y las
marcas de tiempo si están presentes. Esta opción es útil en
sistemas que tienen un límite en la longitud del nombre del
fichero o cuando las marcas de tiempo se han perdido después de
una transferencia de fichero.
-q --quiet
Suprime todos los avisos.
-r --recursive
Recorre la estructura de directorios recursivamente. Si
cualquiera de los nombres de fichero especificados en la línea
de órdenes son directorios, gzip descenderá en el directorio y
comprimirá todos los ficheros que encuentre allí (o los
descomprimirá en el caso de gunzip ).
-S .suf --suffix .suf
Emplea el sufijo .suf en vez de .gz. Se puede dar cualquier
sufijo, pero los distintos a .z y .gz deben evitarse para que no
haya confusiones cuando se transfieran los ficheros a otros
sistemas. Un sufijo nulo fuerza a gunzip a intentar la
descompresión en todos los ficheros dados sin importar el
sufijo, como en
gunzip -S "" * (*.* para MSDOS)
Versiones anteriores de gzip empleaban como sufijo .z. Esto se
cambió para evitar conflictos con pack(1).
-t --test
Test. Comprueba la integridad del fichero comprimido.
-v --verbose
Prolijo. Muestra el nombre y porcentaje de reducción para cada
fichero comprimido o descomprimido.
-V --version
Versión. Muestra el número de versión y las opciones de
compilación y luego acaba.
-# --fast --best
Regula la velocidad de la compresión según el dígito
especificado #, donde -1 ó --fast indica el método de compresión
más rápido (lo que implica una menor compresión) y -9 ó --best
indica el método de compresión más lento (lo que implica la
mejor compresión). EL nivel de compresión predeterminado es -6
(esto es, dirigido a una mayor compresión a expensas de la
velocidad).
EMPLEO AVANZADO
Varios ficheros comprimidos pueden concatenarse. En este caso, gunzip
extraerá todos los miembros de una vez. Por ejemplo:
gzip -c fich1 > fuu.gz
gzip -c fich2 >> fuu.gz
Entonces
gunzip -c fuu
es equivalente a
cat fich1 fich2
En caso de daño a un miembro de un fichero .gz, los otros aún pueden
recuperarse (si se quita el miembro dañado). Sin embargo, puede
obtenerse una mejor compresión comprimiendo todos los miembros de una
vez:
cat fich1 fich2 | gzip > fuu.gz
comprime mejor que
gzip -c fich1 fich2 > fuu.gz
Si quiere recomprimir ficheros concatenados para obtener una mejor
compresión, haga:
gzip -cd viejo.gz | gzip > nuevo.gz
Si un fichero comprimido consta de varios miembros, el tamaño
descomprimido y el CRC que dan la opción --list se aplica al último
miembro solamente. Si necesita el tamaño descomprimido para todos los
miembros, puede usar:
gzip -cd fich.gz | wc -c
Si desea crear un solo fichero archivo con varios miembros de manera
que éstos puedan extraerse más tarde independientemente, utilice un
archivador como tar o zip. El tar de GNU admite la opción -z para
llamar transparentemente a gzip. gzip está diseñado como un complemento
de tar, no como un sustituto.
ENTORNO
La variable de entorno GZIP puede guardar un conjunto de opciones
predeterminadas para gzip. Estas opciones se interpretan antes y
pueden cambiarse o anularse mediante parámetros explícitos de la línea
de órdenes. Por ejemplo:
para sh: GZIP="-8v --name"; export GZIP
para csh: setenv GZIP "-8v --name"
para MSDOS: set GZIP=-8v --name
En Vax/VMS, el nombre de la variable de entorno es GZIP_OPT, para
evitar un conflicto con el símbolo establecido para la llamada al
programa.
VÉASE TAMBIÉN
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1),
compress(1), pack(1), compact(1)
DIAGNÓSTICOS
El estado de salida es normalmente 0; si ocurre un error, el estado de
salida es 1. Si ocurre un aviso, es 2.
Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
Se han dado opciones no válidas en la línea de órdenes.
fichero: not in gzip format
El fichero que se le ha pasado a gunzip no estaba comprimido.
fichero: Corrupt input. Use zcat to recover some data.
El fichero comprimido está dañado. Se pueden recuperar los
datos hasta donde estaba el fallo con
zcat fichero > recuperado
fichero: compressed with xx bits, can only handle yy bits
Fichero ha sido comprimido (con LZW) por un programa que ha
podido tratar con más bits que con los que puede el código de
descompresión en esta máquina. Recomprima el fichero con gzip,
que comprime mejor y usa menos memoria.
fichero: already has .gz suffix -- no change
Se supone que el fichero ya ha sido comprimido. Renombre el
fichero e inténtelo de nuevo.
file already exists; do you wish to overwrite (y or n)?
Responda "y" si quiere que el fichero de salida sea
reemplazado; "n" si no.
gunzip: corrupt input
Se ha detectado una violación de segmento SIGSEGV, que
normalmente significa que el fichero de entrada se ha
corrompido.
xx.x%
Porcentaje de la entrada que se ha ganado en la compresión.
(Relevante solamente para -v y -l.)
-- not a regular file or directory: ignored
Cuando el fichero de entrada no es un fichero regular ni un
directorio, (esto es, por ejemplo un enlace simbólico, zócalo,
FIFO, dispositivo), se deja inalterado.
-- has xx other links: unchanged
El fichero de entrada tiene enlaces; se deja intacto. Vea ln(1)
para más información. Emplee la opción -f para forzar la
compresión de ficheros con varios enlaces.
ADVERTENCIAS
Cuando se escriben datos comprimidos en una cinta, generalmente es
necesario rellenar la salida con ceros hasta un límite de bloque.
Cuando los datos se leen y el bloque entero se pasa a gunzip para la
descompresión, gunzip detecta que hay basura extra al final de los
datos comprimidos y emite de forma predeterminada un aviso. Para
suprimirlo, emplee la opción --quiet. Esta opción puede ponerse en la
variable de entorno GZIP como en:
para sh: GZIP="-q" tar -xfz --block-compress /dev/rst0
para csh: (setenv GZIP -q; tar -xfz --block-compress /dev/rst0)
En el ejemplo anterior, gzip se llama implícitamente con la opción -z
del tar de GNU. Asegúrese de que se utiliza el mismo tamaño de bloque
(la opción -b de tar) para leer y para escribir datos comprimidos en
cintas. (Este ejemplo supone que se está usando la versión de tar de
GNU.)
FALLOS
La opción --list informa de tamaños incorrectos si exceden de 2 GB. La
opción --list da como tamaño -1 y como CRC ffffffff si el fichero
comprimido está en un medio que no admite acceso directo.
En algunos casos raros, la opción --best da peor compresión que el
nivel predeterminado (-6). En algunos ficheros altamente redundantes,
compress comprime mejor que gzip.
GNU GZIP(1)