gzip
NetBSD Gzip / FreeBSD Gzip | |
Fejlesztő | The NetBSD Foundation |
Legfrissebb stabil kiadás | 1.13 (stabil verzió, 2023. augusztus 19.)[2] |
Programozási nyelv | C |
Operációs rendszer | platformfüggetlen |
Platform | platformfüggetlen |
Kategória | adattömörítés |
Licenc | egyszerűsített BSD licenc |
A NetBSD Gzip / FreeBSD Gzip weboldala |
A gzip egy számítógépes alkalmazás adatok tömörítésére és kibontására. A kifejezés legtöbbször a GNU Projekt implementációra utal, ahol a gzip a GNU zip rövidítése. Alapja a DEFLATE algoritmus, mely a Lempel-Ziv (LZ77) és a Huffman-kódolás kombinációja. A programot Jean-Loup Gailly és Mark Adler készítette, mint a korai Unix rendszereken használt compress algoritmus szabad szoftveres helyettesítése, a GNU projektben való használat céljára. A 0.1-es verziót nyilvánosan először 1992 október 30-án adták ki, míg az 1.0-sat 1993 februárjában.
A gzip OpenBSD verziója igazából a compress program, amelyhez a gzip formátum támogatását az OpenBSD 3.4-ben adták hozzá. A "g" ebben a verzióban a gratis-t jelöli.[3]
A FreeBSD, a DragonFlyBSD és a NetBSD a GNU verzió egy BSD licencű implementációját használják; ez valójában a zlib parancssori interfésze, melynek célja a GNU implementációs lehetőségeivel való kompatibilitás.[4] Ezek az implementációk eredetileg a NetBSD-ről érkeztek, támogatják a bzip2 kitömörítését és az Unix pack(1) formátumot.
A fájlformátum
[szerkesztés]gzip | |
MIME-típus | application/x-gzip |
Fejlesztő | GNU Project |
Formátum típusa | adattömörítés |
Uniform | org.gnu.gnu-zip-archive |
Bűvös szám | 0x1f8b |
Weboldal | http://www.gzip.org/ |
A gzip alapja a DEFLATE algoritmus, mely az LZ77 és a Huffman-kódolás kombinációja. A DEFLATE célja az LZW és más szabadalommal védett adattömörítő eljárások helyettesítése volt, melyek akkor limitálták a compress és más népszerű archiválók használatát.
A "gzip" kifejezést gyakran használják a fájlformátumra is, amely:
- egy 10 bájtos fejrész (header), melyben van egy mágikus szám (magic number), egy verziószám és egy időbélyeg
- opcionális extra fejrészek, benne például az eredeti fájlnév,
- egy belső rész (body), benne egy DEFLATE-tel tömörített felhasználói adat (payload)
- egy 8 bájtos lábrész (footer), benne egy CRC-32 checksum és az eredeti tömörítetlen adat hossza
Habár az eredeti formátum engedélyezi több adat összefűzését (a zippelt fájlok kitömörítéskor ezen esetben úgy jelennek meg, mintha eredetileg egy fájlban lettek volna), a gzipet általánosságban csak egy fájlra használják.[5] A tömörített archívumokat általánosságban a fájlokat egy tar archívumba fűzik össze, melyet aztán gzippel tömörítenek. A végső .tar.gz vagy .tgz fájlt általánosan "tarball"-nak hívják.[6]
A gzip nem egyezik meg a zip fájlformátummal, mely szintén használja a DEFLATE-et. Egy ZIP formátumú fájl egyszerre több fájlt is tartalmazhat külön archiváló használata nélkül, ám kevésbé kompakt, mint az ugyanazon adatot tartalmazó tarball, mivel a fájlokat külön-külön tömöríti és ezáltal nem tudja kihasználni a fájlok közti esetleges redundanciát.
A Zlib egy elvonás a DEFLATE algoritmusból könyvtárformátumban, mely egyaránt tartalmazza a gzip fájlformátumot és egy kisméretű stream formátumot az API-jában. A zlib stream formátum, a DEFLATE és a gzip formátumokat sorban az RFC 1950, az RFC 1951, és az RFC 1952 írják le.
A gzippelt fájlok kitömörítésére szolgáló program a gunzip. Mindkét program egyazon binárist hívja meg, a gunzip ugyanazt a hatást éri el, mint a gzip -d.
A gunzip és a zcat
[szerkesztés]A gzip eszköz az UNIX rendszereken több néven is fut.
Amikor a gzipre mint gunzip hivatkoznak, akkor az adatokat kitömöríti (egy fájlt vagy a standard bemenetet). A gunzip a gzip -d megfelelője.
Amikor a gzipre mint zcat hivatkoznak, szintén kitömöríti az adatot, ám a cat parancshoz hasonlóan viselkedik. Külön fájlokat tömörít ki és összefűzi őket a standard bemeneten.
A zcat a gzip -d -c megfelelője.[7]
Példák
[szerkesztés]- Egy fájl gzippel való tömörítésénél a fájlnevet kell paraméterként megadni:
gzip file.txt
A parancs az új fájlt egy kisebbel helyettesíti, általában file.txt.gz néven. Az eredeti file.txt megtartásához szükségeltetik a -c opció használata és az új fájl más névre való átirányítása. A jobb tömörítéshez a -9, míg a gyorsabbhoz a -1 opció használható.[8]
- A kitömörítéshez a gunzip használható gunzip:
gunzip file.txt.gz
- Általánosságban több fájlt tömöríteni a tarballok segítségével lehet:
tar -czf files.tar.gz *.txt
Egyéb használat
[szerkesztés]A HTTP protokollban a Content-Encoding header használata lehetővé teszi a gzip formátumú tömörített adatátvitelt.[9] Több HTTP-szerver támogatja a tartalom tömörítését, köztük az Apache Httpd és a Microsoft ISS is.
A böngészők között szintén elterjedt a gzip tömörítés támogatása. A Firefox, a Chrome, a Safari és az Opera is támogatja. Az Internet Explorer újabb verziói is adnak támogatást a gzip tömörítés használatára, bár a népszerű, Windows XP-vel szállított 6-os verzióban proxy használata esetén a támogatás hibás.
Jegyzetek
[szerkesztés]- ↑ [1]
- ↑ Jim Meyering: gzip-1.13 released [stable], 2023. augusztus 19. (Hozzáférés: 2023. augusztus 20.)
- ↑ OpenBSD gzip(1) manual page (angol nyelven). OpenBSD. (Hozzáférés: 2007. július 23.)
- ↑ http://man.freebsd.org/gzip
- ↑ Can gzip compress several files into a single archive? (angol nyelven). (Hozzáférés: 2010. január 27.)
- ↑ tarball, The Jargon File, version 4.4.7 (angol nyelven). (Hozzáférés: 2010. január 27.)
- ↑ [2] Archiválva 2014. február 9-i dátummal a Wayback Machine-ben zcat manual page in FreeBSD 7.0
- ↑ gzip dokumentáció (angolul)
- ↑ rfc2616
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben a Gzip című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.