gzip(1)


NAME

gzip, gunzip, zcat - compress or expand files

SYNOPSIS

gzip [ -acdfhlLnNrtvV19 ] [ -S suffix ] [ name ... ]
gunzip [ -acfhlLnNrtvV ] [ -S suffix ] [ name ... ]
zcat [ -fhLV ] [ name ... ]

DESCRIPTION

Gzip reduces the size of the named files using Lempel-Ziv coding (LZ77). Whenever possible, each file is replaced by one with the extension ".gz," while keeping the same ownership modes, access and modification times. (The default extension is "-gz" for VMS, "z" for MSDOS, OS/2 FAT, Windows NT FAT and Atari.) If no files are specified, or if a file name is "-", the standard input is compressed to the standard output. Gzip will only attempt to compress regular files. In particular, it will ignore symbolic links.

If the compressed file name is too long for its file system, gzip truncates it. Gzip attempts to truncate only the parts of the file name longer than 3 characters. (A part is delimited by dots.) If the name consists of small parts only, the longest parts are truncated. For example, if file names are limited to 14 characters, gzip.msdos.exe is compressed to gzi.msd.exe.gz. Names are not truncated on systems which do not have a limit on file name length.

By default, gzip keeps the original file name and timestamp in the compressed file. These are used when decompressing the file with the -N option. This is useful when the compressed file name was truncated or when the time stamp was not preserved after a file transfer.

Compressed files can be restored to their original form using gzip -d or gunzip or zcat. If the original name saved in the compressed file is not suitable for its file system, a new name is constructed from the original one to make it legal.

gunzip takes a list of files on its command line and replaces each file whose name ends with .gz, -gz, .z, -z, _z or .Z and which begins with the correct magic number with an uncompressed file without the original extension. gunzip also recognizes the special extensions ".tgz" and ".taz" as shorthands for ".tar.gz" and ".tar.Z" respectively. When compressing, gzip uses the ".tgz" extension if necessary instead of truncating a file with a ".tar" extension.

gunzip can currently decompress files created by gzip, zip, compress, compress -H or pack. The detection of the input format is automatic. When using the first two formats, gunzip checks a 32 bit CRC. For pack, gunzip checks the uncompressed length. The standard compress format was not designed to allow consistency checks. However gunzip is sometimes able to detect a bad .Z file. If you get an error when uncompressing a .Z file, do not assume that the .Z file is correct simply because the standard uncompress does not complain. This generally means that the standard uncompress does not check its input, and happily generates garbage output. The SCO compress -H format (lzh compression method) does not include a CRC but also allows some consistency checks.

A zip program által létrehozott file-okat a gzip csak akkor tudja kitömöríteni, ha csak egy, a 'deflációs' módszerrel tömörített elemet tartalmaznak. Ezt a funkciót pusztán csak arra szánták, hogy megkönnyítse a tar.zip file-ok tar.gz formátumúra történô átalakítását. Több tömörített file-t tartalmazó zip file-ok kitömörítéséhez használjuk a gunzip helyett az unzip programot!

A zcat program ugyanazt csinálja, mint a gunzip -c. (Egyes rendszereken elôfordulhat, hogy a zcat-ot gzcat néven telepítették, hogy így megôrizzék az eredeti linket a compress programhoz.) A zcat program kitömöríti a parancssorban megadott file-listát vagy a standard inputot, és a kitömörített adatokat a standard outputra írja. A zcat csak a helyes 'magic number'-rel rendelkezô file-okat tömöríti ki, függetlenül attól, hogy kiterjesztésük ".gz"-e vagy sem.

A gzip a zip-hez és a PKZIP-hez hasonlóan a Lempel-Ziv algoritmust használja. A tömörített file mérete az input méretétôl és az egyezô stringek eloszlásától függ. Szöveg (pl. forráskód vagy magyar szöveg) mérete rendszerint 60-70%-kal csökken. A tömörítési arány általában sokkal jobb, mint a compress-ben használt LZW-é, a pack-ben használt Huffman-kódolásé vagy a compact-ban található adaptív Huffman-kódolásé.

A tömörítés mindig végbemegy, még akkor is, ha a tömörített file kissé nagyobb az eredetinél. A növekedés a legrosszabb esetben néhány byte a gzip file fejléce miatt, és 32K-nként további 5 byte, ami nagy file-okra 0.015%-os növekedést jelent. Ez azt jelenti, hogy az elfoglalt lemezblokkok száma szinte soha nem nô. A gzip tömörítéskor és kitömörítéskor megôrzi a file-ok engedélyeit, tulajdonosát és idôadatait.

KAPCSOLÓK

-a --ascii
Ascii mód; a sorvégek a helyi szabályok szerint konvertálódnak. Ennek a kapcsolónak csak néhány nem-Unix rendszeren van hatása. MS-DOS alatt, tömörítéskor a CR LF karakterpár LF-re, kitömörítéskor az LF egy CR LF párra cserélôdik.

-c --stdout --to-stdout
A kimenet a standard output-ra íródik; az eredeti file-ok változatlanok maradnak. Több bemeneti file esetén a kimenet egymástól függetlenül tömörített file-ok sorozata lesz. Ha jobb tömörítési arányt szeretne elérni, fûzze össze (konkatenálja) a bemenô file-okat tömörítés elôtt.

-d --decompress --uncompress
Kitömörítés.

-f --force
Akkor is tömörít vagy kitömörít, ha a file több linkkel rendelkezik, ha az illetô file már létezik, vagy ha a tömörített adatokat a terminálra írja vagy onnan olvassa a program. Ha a bemenô adatok a gzip által ismert egyik formátumba se illeszkednek, vagy ha a --stdout kapcsoló be van állítva, a program a bemenô adatokat változtatás nélkül a standard outputra küldi; ilyenkor a zcat úgy viselkedik, mint a cat. Ha a -f kapcsoló nincs beállítva és ha a program nem a háttérben fut, a gzip megerôsítést kér a létezô file-ok felülírásához.

-h --help
A help szövegének megjelenítése után kilép a program.

-l --list
Az összes megadott tömörített file-ra kilistázza a következô mezôket:
compressed: a tömörített file mérete uncompr.: az eredeti fileméret ratio: a tömörítési arány (0.0%, ha nem ismert) uncompressed_name: az eredeti filenév
Az eredeti file méretét -1-nek jelzi, ha a file nem gzip formátumú (pl. .Z). Ilyen file-ok kicsomagolás utáni méretét a
zcat file.Z | wc -c
paranccsal kaphatjuk meg.
Ha a --verbose kapcsoló is be van állítva, a következô mezôk is megjelennek:
method: a tömörítési módszer crc: a tömörítetlen file 32 bites CRC-je date & time: a tömörítetlen file idôadatai
A jelen verzióban támogatott tömörítési eljárások: deflation, compress, lzh (SCO compress -H) és pack. Nem gzip formátumú file esetén a crc mezôben ffffffff kerül kiírásra.
A --name kapcsoló jelenlétében a tömörítetlen file neveként és idôadataiként a tömörített file-ban található adatokat jeleníti meg, ha azok jelen vannak.
A --verbose kapcsoló jelenlétében az összesített méret és tömörítési arány is megjelenik, kivéve, ha egyes méretek nem ismertek. A --quiet kapcsoló jelenlétében a mezôcímek és az összesített adatok nem jelennek meg.

-L --license
Megjeleníti a gzip licenszét és kilép.

-n --no-name
 Tömörítésnél nem menti el az eredeti fájlnevet illetve a fájl idõ adatait ahogy az alapértelmezett lenne. (Az eredeti fájlnév mindig elmentésre kerül, ha a névbõl le kell vágni.) Kitömörítésnél nem állítja helyre az eredeti fájlnevet (a tömörített fájl nevébõl levágja a gzip utótagot - és ez lesz a kitömörített fájl neve), illetve nem állítja helyre az eredeti fájl idõ adatait (a tömörített fájl idõ adatait másolja le). Ez a kapcsoló az alapértelmezett kitömörítésnél.

-N --name
 Tömörítésnél mindig elmenti az eredeti fájlnevet és a fájl idõ adatait (ez az alapértelmezett). Kitömörítésnél helyreállítja az eredeti fájlnevet és idõt (persze csak ha vannak ilyenek elmentve). Ez a kapcsoló azokban a rendszerekben hasznos, ahol a fájlnevek hossza korlátozva van, illetve azokban az esetekben, amikor a fájl átvitelekor elveszett annak ideje.

-q --quiet
 Az összes figyelmeztetés elnyomása.

-r --recursive
 A könyvtár struktúra rekurzív bejárása. Ha a parancssorban megadott fájlnevek bármelyike könyvtár, a  gzip belép a könyvtárba és az összes ott található fájlt tömöríti (gunzip esetén kitömöríti).

-S .suf --suffix .suf
 .suf utótag használata .gz helyett. Tetszõleges utótagot megadhatunk, de a .z illetve .gz utótagoktól való eltérés kerülendõ, nehogy a fájlok más rendszerekbe történõ ávitelekor zavar támadjon. Az üres utótag hatására a gunzip minden fájlt megpróbál kitömöríteni utótagtól függetlenül, pl.:

gunzip -S "" * (*.* MSDOS-ban)
A gzip elõzõ verziói a .z utótagot használták. Ez, a  pack "(1)" paranccsal való ütközést elkerülendõ, megváltozott.

-t --test
 Teszt. Ellenõrzi a tömörített fájl sértetlenségét.

-v --verbose
 Részletezés. Kijelzi a tömörített illetve a kitömörített fájlok nevét és a tömörítés mértékét százalékban.

-V --version
 Verzió. Megjeleníti a verziószámot és a fordítási opciókat, majd kilép.

-# --fast --best
 A tömörítés sebességét szabályozza a megadott # számjegy  felhasználásával, ahol -1 ill. --fast jelenti a leggyorsabb tömörítési módszert (kisebb mértékû tömörítés), amíg -9 ill. --best a leglassabb (legnagyobb mértékû) tömörítési módszernek felel meg. Az alapértelmezett beállítás -6 (azaz sebességgel szemben a nagyobb tömörítési arányt részesítve elõnyben).

HALADÓ HASZNÁLAT

Több tömörített fájlt összefûzhetünk. Ebben az esetben a  gunzip egyszerre kibontja mindegyiket. Például:
gzip -c fájl1 > foo.gz gzip -c fájl2 >> foo.gz
Ekkor a gunzip -c foo
ekvivalens az alábbival
cat fájl1 fájl2
Ilyenkor ha egy .gz fájl valamelyik eleme megsérül, a többi még mindig helyreállítható (ha a sérült elemet eltávolítjuk). Ugyanakkor,
jobb tömörítési arány érhetõ el, ha az összes fájlt egyszerre tömörítjük:
cat fájl1 fájl2 | gzip > foo.gz
jobban tömörít mint
gzip -c fájl1 fájl2 > foo.gz
Ha már tömörített fájlt akarunk újra tömöríteni a jobb tömörítés érdekében, a következõképp járhatunk el:
gzip -cd régi.gz | gzip > új.gz
Ha egy tömörített fájl több elembõl áll, akkor a --list kapcsoló által
visszaadott tömörítetlen méret és CRC csak a legutolsó elemre vonatkozik. Ha az összes elemre szeretnénk megállapítani az eredeti méretet, használjuk a következõt:
gzip -cd fájl.gz | wc -c
Ha egyetlen archív fájlt akarunk létrehozni több elemmel úgy, hogy az elemek késõbb függetlenül kibonthatóak legyenek, használjunk archiváló programot mint például a tar vagy a zip. A GNU tar a -z kapcsolóval támogatja a gzip hívását. A gzip a tar kiegészítõjének és nem helyettesítõjének készült.

KÖRNYEZET

A GZIP környezeti változóban tárolhatunk jónéhány alapértelmezett kapcsolót a gzip számára. Ezek a kapcsolók kerülnek elõször értelmezésre, a parancssorban megadott paraméterek ezeket felülírhatják. Például: sh-ban: GZIP="-8v --name"; export GZIP
csh-ban: setenv GZIP "-8v --name" MSDOS-ban: set GZIP=-8v --name
Vax/VMS esetén a környezeti változó neve GZIP_OPT, ezzel elkerülve az összeütközést magának a programnak a meghívásával.

LÁSD MÉG

znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1), pack(1), compact(1)

HIBAKEZELÉS

A visszatérési érték általában 0; ha hibát észlel, akkor 1. Figyelmeztetés esetén a visszatérési érték 2.

Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
  Érvénytelen kapcsolókat adtunk meg a parancssorban.
file: not in gzip format
A gunzip-nek megadott file nem tömörített.
file: Corrupt input. Use zcat to recover some data.
A tömörített file megsérült. A hiba pozíciójáig terjedô adatrész visszanyerhetô a
zcat file > recover
paranccsal.
file: compressed with xx bits, can only handle yy bits
A file-t egy olyan program tömörítette (LZW), amely több bittel képes dolgozni, mint az ezen a gépen található kitömörítô kód. Tömörítsd újra a file-t egy hatékonyabb és kisebb memóriaigényû gzip-pel!
file: already has .gz suffix -- no change
A file-t tömörítettnek tekinti. Nevezd át a file-t, és próbáld újra!
file already exists; do you wish to overwrite (y or n)?
Válaszolj "y"-t, ha helyettesíteni akarod a kimeneti file-t, vagy "n"-t, ha nem.
gunzip: corrupt input
Úgy tûnik, hogy a SIGSEGV megsérült; ez általában a bemeneti file hibáját jelenti.
xx.x%
A bemenet tömörítéssel nyert százaléka. (Csak -v és -l esetén érdekes.)
-- not a regular file or directory: ignored
Ha a bemeneti file nem rendes file vagy könyvtár (pl. szimbolikus link, socket, FIFO, eszköz file), akkor érintetlen marad.
-- has xx other links: unchanged
A bemeneti file-nak linkjei vannak; vátozatlan marad. További információkért lásd a ln(1) bekezdést! Használd a -f jelzôt, ha sokszorosan linkelt file-okat akarsz tömöríteni.

FENNTARTÁSOK

Ha a tömörített adatokat szalagra írjuk, általában szükséges a kimenetet nullákkal feltölteni egy blokkhatárig. Amikor az adat beolvasásra került, és az egész blokkot átadjuk a gunzip-nek tömörítésre, a gunzip észreveszi, hogy további szemét van a tömörített adat után, és alapbeállítással figyelmeytetést ad. A figyelmeytetés elhagyásához a --quiet kapcsolót kell használni. Ezt a kapcsolót a GZIP környezeti változóban be lehet álítani, mint pl:
sh-ban: GZIP="-q" tar -xfz --block-compress /dev/rst0
csh-ban: setenv GZIP -q; tar -xfz --block-compr /dev/rst0
A fenti példában a gzip-et a GNU tar -z kapcsolója hívja meg implicit módon.Bizonyosodj meg arról, hogy ugyanazt a blokkméretet használod a tömörített adatok szalagra írásánál és olvasásánál is (a tar -b kapcsolója)! (A példa felteszi, hogy a tar GNU verzióját használod.)

ISMERT HIBÁK

A --list kapcsoló helytelen méreteket jelez, ha azok meghaladják a 2 gigabájtot. A --list kapcsoló -1 méretet és ffffffff crc-t jelez, ha a tömörített file nem kereshetô médiumon van (non seekable media).
Néhány ritka esetben a --best kapcsoló rosszabb tömörítést ad, mint az alapbeállítású szint (-6). Néhány rendkívül redundáns file esetében a compress jobban tömörít, mint a gunzip.



Fordították

Csikor Ferenc csiki@ludens.elte.hu
Farkas Bálint fbalint@cs.elte.hu
Németh Gábor gnemeth@cs.elte.hu