GZIP(1) GZIP(1)
gzip, gunzip, zcat - fjlok tmrtse vagy kicsomagolsa
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ nv ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffix] [ nv ... ]
zcat [ -fhLV ] [ nv ... ]
Gzip cskkenti a megnevezett fjlok mrett a Lempel-Ziv kdols (LZ77) fel-
hasznlsval. Hacsak lehetsges, minden fjl egy .gz, kiretjesztsvel lesz
helyettestve azonos tulajdonossal, engedlyekkel, elrsi- s mdostsi
idkkel. (Az alaprtelmezett kiterjeszts -gz VMS alatt, z MSDOS, OS/2
FAT, Windows NT FAT s Atari esetn.) Amennyiben nincs fjl megadva, vagy
a fjlnv a "-" jel, a standard bemenetet tmrti a szabvnyos kimenetre.
Gzip csak a szablyos fjlokat ksrli meg tmrteni. Fknt a szimbolikus
ktseket hagyja figyelmen kvl.
Amennyiben a tmrtett fjlnv tl hossz a fjlrendszernek gzip csonkolni
fogja. Gzip csak a fjlnv 3 karakternl hosszabb rszeit ksrli meg
csonkolni. (A rszeket pontok hatroljk.) Ha a nv csak kis rszekbl ll, a
leghosszabb rszeket csonkolja. Pldul ha a fjlnevek maximum 14 karak-
teresek lehetnek, gzip.msdos.exe tmrtett neve gzi.msd.exe.gz lesz.
Olyan rendszereken, ahol nincs korlt a fjlnevek hosszra, nem trtnik
csonkols.
Alaprtelmezs szerint gzip megrzi az eredeti fjl nevt s idblyegt (times-
tamp) a tmrtett fjlban. Ezeket akkor hasznlja, ha a kicsomagols (decom-
pression) a -N opcival trtnik. Ez akkor hasznos, ha a tmrtett fjl neve
csonkolva volt, vagy az idblyeg megvltozott egy fjltvitel miatt.
A tmrtett fjlok visszallthatk eredeti formjukra a gzip -d vagy gunzip
vagy zcat hasznlatval. Ha a tmrtett fjlban elmentett eredeti nv nem
megfelel a fjlrendszernek, j, leglis nv meghatrozsa trtnik az eredeti
alapjn.
Gunzip egy fjllistt kap a parancssoron keresztl, s minden .gz, -gz, .z,
-z, _z vagy .Z vgzds fjlt, illetve azokat, amelyek megfelel mgikus szm-
mal kezddnek helyettest a kitmrtett vltozatukkal az eredeti kiterjeszts
nlkl. A gunzip program felismeri a .tgz s .taz specilis kiterjeszt-
seket, mint a .tar.gz illetve .tar.Z rvidtseit. Tmrtskor gzip a .tgz
kiterjesztst hasznlja ha szksges, ahelyett, hogy a .tar kiterjeszts
fjlok tmrtett nevt csonkoln.
A gunzip program pillanatnyilag a gzip, zip, compress, compress -H vagy
pack programok ltal tmrtett fjlokat tudja kicsomagolni. A bemen form-
tum rzkelse automatikus. Az els kt esetben gunzip egy 32 bites CRC
ellenrzst vgez. A pack esetben gunzip a tmrtetlen hosszat ellenrzi. A
standard compress formtum nem ad lehetsget az nellenrzsre. Ennek
ellenre gunzip nha kpes felismerni a rossz .Z fjlt. Ha egy .Z fjl kic-
somagolsa sorn hibazenet keletkezik, de a standard uncompress nem jelez
semmit, az nem jelenti azt, hogy a tmrtett fjl korrekt volt. Ez tbb-
nyire az miatt van, hogy a standard uncompress nem ellenrzi a bemenett,
s vidman generl sszezagyvlt kimenetet. A 'SCO compress -H' formtum
(lzh tmrtsi mdszer) nem tartalmaz CRC-t, de megenged nhny nellenrzsi
lehetsget.
A zip ltal ltrehozott programokat csak akkor tudja a gunzip kicso-
magolni, ha egyetlen tagja van, mely a 'deflation' mdszerrel lett
tmrtve. Ez a lehetsg csak a tar.zip fjlok tar.gz-re alaktsra ajnlott.
Tbbtag zip fjlok kicsomagolsra az unzip alkalmas.
Zcat azonos gunzip -c -vel. (Nhny rendszeren a zcat program gzcat nven
lehet teleptve, hogy megvdjk a compress -re mutat eredeti ktst.) Zcat
a parancssorbl rkez fjllistt s a szabvnyos bemenetet is kpes kicso-
magolni, s a kicsomagolt adatokat a szabvnyos kimenetre rja.
A zcat program a megfelel mgikus szmmal rendelkez fjlokat kicsomagolja,
fggetlenl a .gz meglttl.
A gzip program a zip s PKZIP programok ltal is hasznlt Lempel-Ziv
kdolst hasznlja. Az elrt tmrts mrtke a bemenet mrettl s az azonos
stringek eloszlstl fgg. Pldul egy tipikus szveget, mint egy forrskd
vagy angol szveg, az eredeti mret 30-40%-ra tmrt ssze. A tmrts ltalban
sokkal jobb, mint az LZW-vel ( compress ), a Huffman kdolssal ( pack ),
vagy az adaptv Huffman-kdolssal ( compact ) rhet el.
A tmrtsi folyamat mindig megtrtnik, mg akkor is, ha a tmrtett fjl kic-
sivel nagyobb, mint az eredeti. A legrosszabb eset nhny bjtos gzip
fejlccel s 32K-nknt 5 bjttal val mretnvekedst jelent, illetve 0.015%-os
nvekedsi arnyt nagy fjloknl. Ez ltalban nem jelenti tbb lemezblokk fel-
hasznlst. Gzip megrzi a feldolgozott fjlok mdjt, tulajdonost s
idblyegeit.
-a --ascii
ASCII szveg md: a sorvgjeleket a helyi szoksoknak megfelelen
alaktja. Ez az opci csak nhny nem-Unix rendszeren tmogatott.
MSDOS esetn a CR+LF jelbl LF lesz tmrtskor, LF-bl pedig CR+LF
kicsomagolskor.
-c --stdout --to-stdout
A kimenetet a szabvnyos kimenetre rja, az eredeti fjlokat
vltozatlanul hagyja. Tbb bemen fjl esetn a kimenet fggetlenl
tmrtett tagok sorozata lesz. Jobb tmrtst lehet elrni a bemeneti
fjlok tmrts eltti sszekapcsolsval.
-d --decompress --uncompress
Kicsomagols (decompress).
-f --force
A tmrts vagy kicsomagols erltetse mg akkor is, ha a fjlnak tbb-
szrs ktsei vannak, vagy a megfelel fjl mr ltezik, vagy a tmrtett
adatot terminlrl olvassa vagy oda rja a program. Ha a bemeneti
adatok nem felismerhetk a gzip -nek s ha a '--stdout' opci is
adott, a bemen adatokat vltozs nlkl a szabvnyos kimenetre
msolja. Ilyenkor zcat ugyangy viselkedik, mint cat. Ha -f nincs
megadva s nem a httrben fut a program, gzip visszakrdez, hogy a
mr ltez fjlok fellrhatk-e.
-h --help
Segt informcikat r ki, majd kilp.
-l --list
Minden tmrtett fjlra listt kszt a kvetkez mezkkel:
compressed size: a tmrtett fjl mrete
uncompressed size: a tmrtetlen fjl mrete
ratio: tmrtsi arny (0.0% ha ismeretlen)
uncompressed_name: a tmrtetlen fjl neve
Az 'uncompressed size' mez rtke -1 a nem gzip formtum fjokra,
mint pl. a tmrtett .Z fjlok. Egy ilyen fjl tmrtetlen mretnek
meghatrozsra hasznlhatjuk pl. a kvetkez parancsot:
zcat file.Z | wc -c
A -l opcit egytt hasznlva a --verbose-zal a kvetkez mezk is meg-
jelennek:
method: tmrtsi mdszer
crc: a tmrtetlen adatok 32 bites CRC rtke
date & time: a tmrtetlen fjlok idblyege
Pillanatnyilag a tmogatott tmrtsi mdszerek: deflate, compress,
lzh (SCO compress -H) s pack. A crc rtke ffffffff lesz nem gzip
formtum fjlokra.
A --verbose hasznlata esetn a mretek s a tmrtsi arnyok sszegzse
is kirdik, hacsaknem van ismeretlen mret. A --quiet opcival a cm
s az sszegzs nem kerl kijelzsre.
-L --license
Kijelzi a gzip engedlyeit s kilp.
-n --no-name
Tmrtskor nem menti el az eredeti fjl nevt s idblyegt. (Az ere-
deti nv mindig elmentdik, ha a nevet csonkolni kellett.) Kicso-
magolskor nem lltja vissza az eredeti fjlnevet, azaz csak a gzip
fjlvgzdst tvltja el, s nem lltja vissza az idblyegeket, hanem a
tmrtett fjlbl msolja.
Ez az opci kicsomagolskor alaprtelmezett.
-N --name
Tmrtskor mindenkppen elmenti az eredeti fjlnevet s idblyeget.
(Alaprtelmezett.) Kicsomagolskor az eredeti fjlnevet s idblyeget
lltja vissza. Ez az opci olyan rendszereken hasznos, ahol a fjl-
nevek hossza korltos, vagy az idblyeg elveszett egy fjltvitel
sorn.
-q --quiet
Elhagyja a figyelmeztetseket.
-r --recursive
Rekurzvan vgigmegy a knyvtrstruktrn. Ha a parancssorban megadott
fjlnevek knyvtrakat is tartalmaznak, gzip bemegy a knyvtrba s
tmrti (illetve gunzip kicsomagolja) az ott tallt fjlokat.
-S .suf --suffix .suf
A .suf fjlnv-vgzdst hasznlja .gz helyett. Brmilyen vgzds hasznl-
hat, de .z s .gz-tl klnbz hasznlata nem ajnlott ms rendszerekre
val esetleges tvitel esetn. res vgzds esetn gunzip megprbl min-
den adott fjlt kicsomagolni a vgzdstl fggetlenl. Pl. a kvetkez
parancs az aktulis knyvtr minden fjljt megprblja kicsomagolni:
gunzip -S "" * (*.* MSDOS esetn)
A gzip korbbi verzii a .z vgzdst hasznltk. Ez azrt lett megvl-
toztatva, hogy ne legyen kevereds a pack(1). programmal.
-t --test
Teszteli a tmrtett fjl psgt (integrity).
-v --verbose
Bbeszd zemmd. Kijelzi az sszes tmrtett vagy kicsomagolt fjl
tmrtsi arnyt s nevt.
-V --version
Kijelzi a program verziszmt s a fordtsi opcikat, majd kilp.
-# --fast --best
A tmrts sebessgt szablyozza a #, szmmal, ahol -1 vagy --fast a
leggyorsabb, de kisebb tmrts tmrtsi mdszert jelli, s -9 vagy
--best a leglassabb, de legjobban tmrt mdszert. Alaprtelmezs: -6
kztt.
Tbb tmrtett fjl sszekapcsolhat. Ebben az esetben gunzip minden tagot
egyszer csomagol ki. Pl.:
gzip -c file1 > foo.gz
gzip -c file2 >> foo.gz
majd
gunzip -c foo
egyenrtk ezzel:
cat file1 file2
A .gz fjl egyik tagjnak srlsekor a tbbi tag mg visszallthat, ha a srlt
rszt eltvoltjuk.
Jobb tmrts rhet el, ha az sszes tagot egyszerre tmrtjk. Pl.
cat file1 file2 | gzip > foo.gz
jobban tmrt, mint
gzip -c file1 file2 > foo.gz
Ha sszefztt fjlokat jra akarunk tmrteni nagyobb tmrsg elrse miatt,
csinlhatjuk a kvetkez mdon:
gzip -cd old.gz | gzip > new.gz
Ha a tmrtett fjl tbb tagbl ll, a tmrtetlen mret s a CRC adat, amit a
--list opci kijelez, csak az utols tagra vonatkozik. Ha mindegyik tag
tmrtetlen mretre kvncsiak vagyunk, hasznlhatjuk a kvetkez parancsot:
gzip -cd file.gz | wc -c
Amennyiben egyetlen olyan archv fjlt akarunk kszteni, mely tbb, egymstl
fggetlenl kicsomagolhat tagbl ll, valamilyen archivl programot kell
hasznlnunk, mint pl. a tar, vagy a zip. A GNU tar tmogatja a -z opcit,
mely esetn magtl meghvja a gzip-et. A gzip gy kiegszti, s nem
helyettesti a tar-t.
A GZIP krnyezeti vltoz a gzip alaprtelmezett opciit tartalmazhatja.
Elszr ezek az opcik kerlnek rtelmezsre, de a parancssor paramtereivel
fellbrlhatk. Pl.:
sh esetn: GZIP="-8v --name"; export GZIP
csh esetn: setenv GZIP "-8v --name"
MSDOS esetn: set GZIP=-8v --name
Vax/VMS alatt a krnyezeti vltoz neve GZIP_OPT, hogy elkerljk a konflik-
tust a krnyezeti vltoz s a programhvs kzti konfliktust.
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), com-
press(1), pack(1), compact(1)
A norml kilpsi llapot 0, hiba esetn 1, figyelmeztets esetn 2.
Az angol vltozat lehetsges hibazenetei s figyelmeztetsei:
Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
A parancssorban rvnyetelen opcik kerltek megadsra.
file: not in gzip format
A gunzip -nek tadott fjl nem tmrtett, vagy ismeretlen formtum.
file: Corrupt input. Use zcat to recover some data.
A tmrtett fjl megsrlt. A hiba pontjig az adatok visszallthatk a
kvetkez paranccsal:
zcat file > recover
file: compressed with xx bits, can only handle yy bits
File egy olyan LZW-t hasznl programmal lett tmrtve, amely tbb
bitet hasznlt, mint az aktulis gp kicsomagol kdja. Clszer
jratmrteni a fjlt gzip-pel, ami jabban tmrt s kevesebb memrit
hasznl.
file: already has .gz suffix -- no change
A fjl felttelezheten mr tmrtve van, mert kiterjesztse .gz . Ha
mgsem tmrtett, t kell nevezni, majd jra prblkozni.
file already exists; do you wish to overwrite (y or n)?
Vlaszolj "y"-t, ha azt akarod, hogy a kimeneti fjl fellrja az
eredetit, klnben "n"-t.
gunzip: corrupt input
A program "SIGSEGV violation"-t detektlt, ami ltalban srlt
bemeneti fjlt jelent.
xx.x%
A tmrts ltal megtakartott terlet arnya szzalkokban. ( -v s -l
opcik esetn rvnyes.)
-- not a regular file or directory: ignored
Amikor a bemeneti fjl nem szablyos fjl vagy knyvtr (hanem pl.
szimbolikus kts, socket, FIFO, eszkzfjl), a gzip vltozatlanul
hagyja. -- has xx other links: unchanged
A bemeneti fjlnak ktsei vannak, a gzip vltozatlanul
hagyja. Lsd mg: ln(1) hasznlatt a bvebb informcikrt.
Hasznld a -f opcit a tbbszrsen kttt fjlok tmrtshez.
Tmrtett adatok szalagra rsakor ltalban szksges a kimenet feltltse nul-
lkkal a blokkhatr elrsig. Az adatok olvassakor a teljes blokk tadsra
kerl a gunzip programnak kicsomagolsra, de gunzip rzkeli, hogy valami-
lyen szemt kveti a tmrtett adatokat, ami alaprtelmezs szerint
figyelmeztetshez vezet. A fugyelmezetets elhagyshoz a --quiet opci
hasznlhat. Ezt a GZIP krnyezeti vltozban is bellthatjuk:
sh esetn: GZIP="-q" tar -xfz --block-compress /dev/rst0
csh esetn: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0
A fenti pldban a gzip-et a GNU tar hvja meg a -z opci miatt. Legynk
biztosak, hogy azonos blokkmret (a tar -b opcija) lett az olvasskor s
az rskor is hasznlva. (Termszetesen ez a plda a GNU tar hasznlatt felt-
telezte.)
A --list opci rossz mretet jelez 2 gigabjt felett. A --list opci -1
-et ad meg mretnek s ffffffff -et CRC-nek ha a tmrtett fjl nem elrhet
adathordozn van.
Nhny ritka esetben a --best opci rosszab tmrtst ad, mint az
alaprtelmezett tmrtsi szint. Nhny nagyon redundns fjl esetn compress
jobban tmrt, mint gzip.
Horvth Andrs <horvatha [AT] rs1.hu>
GZIP(1)