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.
Csikor Ferenc | csiki@ludens.elte.hu |
Farkas Bálint | fbalint@cs.elte.hu |
Németh Gábor | gnemeth@cs.elte.hu |