Section: User Commands (1)
Updated: GNU
Index Return to Main
Contents
gzip, gunzip, zcat - comprimen o expanden ficheros
[ -acdfhlLnNrtvV19 ] [-S sufijo] [
nombre ... ]
gunzip [ -acfhlLnNrtvV ] [-S sufijo] [
nombre ... ]
zcat [ -fhLV ] [ nombre ... ]
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.
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.
gunzip -S "" * (*.* para MSDOS)
Versiones anteriores de gzip empleaban como sufijo .z. Esto se cambió para evitar conflictos con pack(1).
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.
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.
(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1), pack(1), compact(1)
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.
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.)
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.
This document was created by man2html, using
the manual pages.
Time: 20:28:05 GMT, January 21, 2005