.PU .TH GZIP 1 .SH NÉV gzip, gunzip, zcat \- fájlok tömörítése vagy kicsomagolása .SH ÁTTEKINTÉS .ll +8 .B gzip .RB [ " \-acdfhlLnNrtvV19 " ] .RB [ \-S\ suffix ] [ .I "név \&..." ] .ll -8 .br .B gunzip .RB [ " \-acfhlLnNrtvV " ] .RB [ \-S\ suffix ] [ .I "név \&..." ] .br .B zcat .RB [ " \-fhLV " ] [ .I "név \&..." ] .SH LEÍRÁS .I Gzip csökkenti a megnevezett fájlok méretét a Lempel-Ziv kódolás (LZ77) felhasználásával. Hacsak lehetséges, minden fájl egy .B "\&.gz," kiretjesztésűvel lesz helyettesítve azonos tulajdonossal, engedélyekkel, elérési- és módosítási időkkel. (Az alapértelmezett kiterjesztés .B "\-gz" VMS alatt, .B "z" MSDOS, OS/2 FAT, Windows NT FAT és Atari esetén.) Amennyiben nincs fájl megadva, vagy a fájlnév a "-" jel, a standard bemenetet tömöríti a szabványos kimenetre. .PP .I Gzip csak a szabályos fájlokat kísérli meg tömöríteni. Főként a szimbolikus kötéseket hagyja figyelmen kívül. .PP Amennyiben a tömörített fájlnév túl hosszú a fájlrendszernek .I gzip csonkolni fogja. .I Gzip csak a fájlnév 3 karakternél hosszabb részeit kísérli meg csonkolni. (A részeket pontok határolják.) Ha a név csak kis részekből áll, a leghosszabb részeket csonkolja. Például ha a fájlnevek maximum 14 karakteresek lehetnek, gzip.msdos.exe tömörített neve gzi.msd.exe.gz lesz. Olyan rendszereken, ahol nincs korlát a fájlnevek hosszára, nem történik csonkolás. .PP Alapértelmezés szerint .I gzip megőrzi az eredeti fájl nevét és időbélyegét (timestamp) a tömörített fájlban. Ezeket akkor használja, ha a kicsomagolás (decompression) a .B \-N opcióval történik. Ez akkor hasznos, ha a tömörített fájl neve csonkolva volt, vagy az időbélyeg megváltozott egy fájlátvitel miatt. .PP A tömörített fájlok visszaállíthatók eredeti formájukra a .I gzip -d vagy .I gunzip vagy .I zcat használatával. Ha a tömörített fájlban elmentett eredeti név nem megfelelő a fájlrendszernek, új, legális név meghatározása történik az eredeti alapján. .PP .I Gunzip egy fájllistát kap a parancssoron keresztül, és minden .gz, -gz, .z, -z, _z vagy .Z végződésű fájlt, illetve azokat, amelyek megfelelő mágikus számmal kezdődnek helyettesít a kitömörített változatukkal az eredeti kiterjesztés nélkül. A .I gunzip program felismeri a .B "\&.tgz" és .B "\&.taz" speciális kiterjesztéseket, mint a .B "\&.tar.gz" illetve .B "\&.tar.Z" rövidítéseit. Tömörítéskor .I gzip a .B "\&.tgz" kiterjesztést használja ha szükséges, ahelyett, hogy a .B "\&.tar" kiterjesztésű fájlok tömörített nevét csonkolná. .PP A .I gunzip program pillanatnyilag a .I gzip, zip, compress, compress -H vagy .I pack programok által tömörített fájlokat tudja kicsomagolni. A bemenő formátum érzékelése automatikus. Az első két esetben .I gunzip egy 32 bites CRC ellenőrzést végez. A .I pack esetében .I gunzip a tömörítetlen hosszat ellenőrzi. A standard .I compress formátum nem ad lehetőséget az önellenőrzésre. Ennek ellenére .I gunzip néha képes felismerni a rossz .Z fájlt. Ha egy .Z fájl kicsomagolása során hibaüzenet keletkezik, de a standard .I uncompress nem jelez semmit, az nem jelenti azt, hogy a tömörített fájl korrekt volt. Ez többnyire az miatt van, hogy a standard .I uncompress nem ellenőrzi a bemenetét, és vidáman generál összezagyvált kimenetet. A 'SCO compress -H' formátum (lzh tömörítési módszer) nem tartalmaz CRC-t, de megenged néhány önellenőrzési lehetőséget. .PP A .I zip által létrehozott programokat csak akkor tudja a .I gunzip kicsomagolni, ha egyetlen tagja van, mely a 'deflation' módszerrel lett tömörítve. Ez a lehetőség csak a tar.zip fájlok tar.gz-re alakítására ajánlott. Többtagú zip fájlok kicsomagolására az .I unzip alkalmas. .PP .I Zcat azonos .I gunzip .B \-c -vel. (Néhány rendszeren a .I zcat program .I gzcat néven lehet telepítve, hogy megvédjék a .I compress -re mutató eredeti kötést.) .I Zcat a parancssorból érkező fájllistát és a szabványos bemenetet is képes kicsomagolni, és a kicsomagolt adatokat a szabványos kimenetre írja. .PP A .I zcat program a megfelelő mágikus számmal rendelkező fájlokat kicsomagolja, függetlenül a .B "\&.gz" meglététől. .PP A .I gzip program a .I zip és PKZIP programok által is használt Lempel-Ziv kódolást használja. Az elért tömörítés mértéke a bemenet méretétől és az azonos stringek eloszlásától függ. Például egy tipikus szöveget, mint egy forráskód vagy angol szöveg, az eredeti méret 30\-40%-ára tömörít össze. A tömörítés általában sokkal jobb, mint az LZW-vel ( .IR compress ), a Huffman kódolással ( .IR pack ), vagy az adaptív Huffman-kódolással ( .IR compact ) érhető el. .PP A tömörítési folyamat mindig megtörténik, még akkor is, ha a tömörített fájl kicsivel nagyobb, mint az eredeti. A legrosszabb eset néhány bájtos gzip fejléccel és 32K-nként 5 bájttal való méretnövekedést jelent, illetve 0.015%-os növekedési arányt nagy fájloknál. Ez általában nem jelenti több lemezblokk felhasználását. .I Gzip megőrzi a feldolgozott fájlok módját, tulajdonosát és időbélyegeit. .SH OPCIÓK .TP .B \-a --ascii ASCII szöveg mód: a sorvégjeleket a helyi szokásoknak megfelelően alakítja. Ez az opció csak néhány nem-Unix rendszeren támogatott. MSDOS esetén a CR+LF jelből LF lesz tömörítéskor, LF-ből pedig CR+LF kicsomagoláskor. .TP .B \-c --stdout --to-stdout A kimenetet a szabványos kimenetre írja, az eredeti fájlokat változatlanul hagyja. Több bemenő fájl esetén a kimenet függetlenül tömörített tagok sorozata lesz. Jobb tömörítést lehet elérni a bemeneti fájlok tömörítés előtti összekapcsolásával. .TP .B \-d --decompress --uncompress Kicsomagolás (decompress). .TP .B \-f --force A tömörítés vagy kicsomagolás erőltetése még akkor is, ha a fájlnak többszörös kötései vannak, vagy a megfelelő fájl már létezik, vagy a tömörített adatot terminálról olvassa vagy oda írja a program. Ha a bemeneti adatok nem felismerhetők a .I gzip -nek és ha a '--stdout' opció is adott, a bemenő adatokat változás nélkül a szabványos kimenetre másolja. Ilyenkor .I zcat ugyanúgy viselkedik, mint .I cat. Ha .B \-f nincs megadva és nem a háttérben fut a program, .I gzip visszakérdez, hogy a már létező fájlok felülírhatók-e. .TP .B \-h --help Segítő információkat ír ki, majd kilép. .TP .B \-l --list Minden tömörített fájlra listát készít a következő mezőkkel: compressed size: a tömörített fájl mérete uncompressed size: a tömörítetlen fájl mérete ratio: tömörítési arány (0.0% ha ismeretlen) uncompressed_name: a tömörítetlen fájl neve Az 'uncompressed size' mező értéke -1 a nem gzip formátumú fájokra, mint pl. a tömörített .Z fájlok. Egy ilyen fájl tömörítetlen méretének meghatározására használhatjuk pl. a következő parancsot: zcat file.Z | wc -c A -l opciót együtt használva a --verbose-zal a következő mezők is megjelennek: method: tömörítési módszer crc: a tömörítetlen adatok 32 bites CRC értéke date & time: a tömörítetlen fájlok időbélyege Pillanatnyilag a támogatott tömörítési módszerek: deflate, compress, lzh (SCO compress -H) és pack. A crc értéke ffffffff lesz nem gzip formátumú fájlokra. A --verbose használata esetén a méretek és a tömörítési arányok összegzése is kiíródik, hacsaknem van ismeretlen méret. A --quiet opcióval a cím és az összegzés nem kerül kijelzésre. .TP .B \-L --license Kijelzi a .I gzip engedélyeit és kilép. .TP .B \-n --no-name Tömörítéskor nem menti el az eredeti fájl nevét és időbélyegét. (Az eredeti név mindig elmentődik, ha a nevet csonkolni kellett.) Kicsomagoláskor nem állítja vissza az eredeti fájlnevet, azaz csak a .I gzip fájlvégződését távlítja el, és nem állítja vissza az időbélyegeket, hanem a tömörített fájléból másolja. .PP Ez az opció kicsomagoláskor alapértelmezett. .TP .B \-N --name Tömörítéskor mindenképpen elmenti az eredeti fájlnevet és időbélyeget. (Alapértelmezett.) Kicsomagoláskor az eredeti fájlnevet és időbélyeget állítja vissza. Ez az opció olyan rendszereken hasznos, ahol a fájlnevek hossza korlátos, vagy az időbélyeg elveszett egy fájlátvitel során. .TP .B \-q --quiet Elhagyja a figyelmeztetéseket. .TP .B \-r --recursive Rekurzívan végigmegy a könyvtárstruktúrán. Ha a parancssorban megadott fájlnevek könyvtárakat is tartalmaznak, .I gzip bemegy a könyvtárba és tömöríti (illetve .I gunzip kicsomagolja) az ott talált fájlokat. .TP .B \-S .suf --suffix .suf A .suf fájlnév-végződést használja .gz helyett. Bármilyen végződés használható, de .z és .gz-től különböző használata nem ajánlott más rendszerekre való esetleges átvitel esetén. Üres végződés esetén .I gunzip megpróbál minden adott fájlt kicsomagolni a végződéstől függetlenül. Pl. a következő parancs az aktuális könyvtár minden fájlját megpróbálja kicsomagolni: gunzip -S "" * (*.* MSDOS esetén) A gzip korábbi verziói a .z végződést használták. Ez azért lett megváltoztatva, hogy ne legyen keveredés a .IR pack "(1)". programmal. .TP .B \-t --test Teszteli a tömörített fájl épségét (integrity). .TP .B \-v --verbose Bőbeszédű üzemmód. Kijelzi az összes tömörített vagy kicsomagolt fájl tömörítési arányát és nevét. .TP .B \-V --version Kijelzi a program verziószámát és a fordítási opciókat, majd kilép. .TP .B \-# --fast --best A tömörítés sebességét szabályozza a .IR # , számmal, ahol .B \-1 vagy .B \-\-fast a leggyorsabb, de kisebb tömörítésű tömörítési módszert jelöli, és .B \-9 vagy .B \-\-best a leglassabb, de legjobban tömörítő módszert. Alapértelmezés: .BR \-6 . Ez egyfajta egyensúly a magas tömörítés és a magas sebességi követelményk között. .SH HALADÓ HASZNÁLAT Több tömörített fájl összekapcsolható. Ebben az esetben .I gunzip minden tagot egyszer csomagol ki. Pl.: gzip -c file1 > foo.gz gzip -c file2 >> foo.gz majd gunzip -c foo egyenértékű ezzel: cat file1 file2 A .gz fájl egyik tagjának sérülésekor a többi tag még visszaállítható, ha a sérült részt eltávolítjuk. .PP Jobb tömörítés érhető el, ha az összes tagot egyszerre tömörítjük. Pl. cat file1 file2 | gzip > foo.gz jobban tömörít, mint gzip -c file1 file2 > foo.gz Ha összefűzött fájlokat újra akarunk tömöríteni nagyobb tömörség elérése miatt, csinálhatjuk a következő módon: gzip -cd old.gz | gzip > new.gz Ha a tömörített fájl több tagból áll, a tömörítetlen méret és a CRC adat, amit a --list opció kijelez, csak az utolsó tagra vonatkozik. Ha mindegyik tag tömörítetlen méretére kíváncsiak vagyunk, használhatjuk a következő parancsot: gzip -cd file.gz | wc -c Amennyiben egyetlen olyan archív fájlt akarunk készíteni, mely több, egymástól függetlenül kicsomagolható tagból áll, valamilyen archiváló programot kell használnunk, mint pl. a tar, vagy a zip. A GNU tar támogatja a -z opciót, mely esetén magától meghívja a gzip-et. A gzip így kiegészíti, és nem helyettesíti a tar-t. .SH KÖRNYEZET A .B GZIP környezeti változó a .I gzip alapértelmezett opcióit tartalmazhatja. Először ezek az opciók kerülnek értelmezésre, de a parancssor paramétereivel felülbírálhatók. Pl.: sh esetén: GZIP="-8v --name"; export GZIP csh esetén: setenv GZIP "-8v --name" MSDOS esetén: set GZIP=-8v --name Vax/VMS alatt a környezeti változö neve GZIP_OPT, hogy elkerüljük a konfliktust a környezeti változó és a programhívás közti konfliktust. .SH LÁSD MÉG znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1), pack(1), compact(1) .SH DIAGNOSZTIKA A normál kilépési állapot 0, hiba esetén 1, figyelmeztetés esetén 2. .PP Az angol változat lehetséges hibaüzenetei és figyelmeztetései: .PP Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] .in +8 A parancssorban érvényetelen opciók kerültek megadásra. .in -8 .IR file : not in gzip format .in +8 A .I gunzip -nek átadott fájl nem tömörített, vagy ismeretlen formátumú. .in -8 .IR file: Corrupt input. Use zcat to recover some data. .in +8 A tömörített fájl megsérült. A hiba pontjáig az adatok visszaállíthatók a következő paranccsal: .in +8 zcat file > recover .in -16 .IR file : compressed with .I xx bits, can only handle .I yy bits .in +8 .I File egy olyan LZW-t használó programmal lett tömörítve, amely több bitet használt, mint az aktuális gép kicsomagoló kódja. Célszerű újratömöríteni a fájlt gzip-pel, ami jabban tömörít és kevesebb memóriát használ. .in -8 .IR file : already has .gz suffix -- no change .in +8 A fájl feltételezhetően már tömörítve van, mert kiterjesztése .gz . Ha mégsem tömörített, át kell nevezni, majd újra próbálkozni. .in -8 .I file already exists; do you wish to overwrite (y or n)? .in +8 Válaszolj "y"-t, ha azt akarod, hogy a kimeneti fájl felülírja az eredetit, különben "n"-t. .in -8 gunzip: corrupt input .in +8 A program "SIGSEGV violation"-t detektált, ami általában sérült bemeneti fájlt jelent. .in -8 .I "xx.x%" .in +8 A tömörítés által megtakarított terület aránya százalékokban. ( .BR \-v és .BR \-l opciók esetén érvényes.) .in -8 -- not a regular file or directory: ignored .in +8 Amikor a bemeneti fájl nem szabályos fájl vagy könyvtár (hanem pl. szimbolikus kötés, socket, FIFO, eszközfájl), a gzip változatlanul hagyja. -- has .I xx other links: unchanged .in +8 A bemeneti fájlnak kötései vannak, a gzip változatlanul hagyja. Lásd még: .IR ln "(1)" használatát a bővebb információkért. Használd a .B \-f opciót a többszörösen kötött fájlok tömörítéséhez. .in -8 .SH FIGYELMEZTETÉSEK Tömörített adatok szalagra írásakor általában szükséges a kimenet feltöltése nullákkal a blokkhatár eléréséig. Az adatok olvasásakor a teljes blokk átadásra kerül a .I gunzip programnak kicsomagolásra, de .I gunzip érzékeli, hogy valamilyen szemét követi a tömörített adatokat, ami alapértelmezés szerint figyelmeztetéshez vezet. A fugyelmezetetés elhagyásához a --quiet opció használható. Ezt a .B GZIP környezeti változóban is beállíthatjuk: sh esetén: GZIP="-q" tar -xfz --block-compress /dev/rst0 csh esetén: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0 A fenti példában a gzip-et a GNU tar hívja meg a -z opció miatt. Legyünk biztosak, hogy azonos blokkméret (a tar -b opciója) lett az olvasáskor és az íráskor is használva. (Természetesen ez a példa a GNU tar használatát feltételezte.) .SH HIBÁK A --list opció rossz méretet jelez 2 gigabájt felett. A --list opció -1 -et ad meg méretnek és ffffffff -et CRC-nek ha a tömörített fájl nem elérhető adathordozón van. Néhány ritka esetben a --best opció rosszab tömörítést ad, mint az alapértelmezett tömörítési szint. Néhány nagyon redundáns fájl esetén .I compress jobban tömörít, mint .I gzip. .SH MAGYAR FORDÍTÁS Horváth András