Gzip

Gzip
programvare
SjangerDatakomprimering
UtviklerGNU-prosjektet
Dato for første versjon1992
Siste versjon1,12 (7. april 2022)
OperativsystemUnix-aktig
SpråkC.
TillatelseGPL 3
( gratis lisens )
Nettstedwww.gnu.org/software/gzip/
Gzip
Utvidelse.gz
MIME-typeapplication/x-gzip
Utviklet avJean-Loup Gailly , Mark Adler
Siste versjon1,12 (7. april 2022)
FyrDatakomprimering
Åpent format ?Jepp
Nettstedwww.gzip.org

gzip er gratis datakomprimeringsprogramvare . _ Navnet er sammentrekningen av GNU zip. Den ble opprinnelig laget av Jean-Loup Gailly og Mark Adler . Versjon 0.1 ble utgitt 31. oktober 1992 . Versjon 1.0 så i stedet lyset i februar 1993 .

Beskrivelse

Normalt vil hvert arkiv bli erstattet av ett med filtypen .gz, og beholde de samme egenskapene, tilgangs- og endringsdatoene (standardutvidelsen er gz for Linux eller OpenVMS , z for MS-DOS , OS / 2 FAT, Windows NT FAT og Atari ). Hvis det komprimerte filnavnet er for langt, vil det bli avkortet.

Hvis ingen fil er spesifisert, eller hvis et filnavn er "-", komprimeres standardinndata til standardutdata. Gzip vil bare prøve å komprimere vanlige filer. Spesielt vil den ignorere symbolske lenker.

Hvis det komprimerte filnavnet er for langt for filsystemet , vil gzip avkorte det. Gzip prøver å avkorte bare deler av filnavnet som er lengre enn 3 tegn (en del er avgrenset med prikker). Hvis navnet bare består av små deler, avkortes de lengre. For eksempel, hvis filnavn er begrenset til 14 tegn, vil gzip.msdos.exe bli komprimert til gzi.msd.exe.gz. Navn avkortes ikke på systemer som ikke har noen grense for lengden på filnavnet.

Som standard beholder gzip det originale navnet og tidsstempelet (opprettelsesdato og -klokkeslett) for filen i den komprimerte filen. Disse brukes når du dekomprimerer filen med alternativet -N. Dette er nyttig når det komprimerte filnavnet har blitt avkortet eller når datoer ikke er bevart etter en filoverføring.

Komprimerte filer kan tilbakestilles til sin opprinnelige form ved å bruke gzip -d eller gunzip eller zcat. Hvis det opprinnelige navnet som er lagret i den komprimerte filen ikke er egnet for dette filsystemet, vil et nytt navn bli konstruert fra det opprinnelige for å gjøre det lovlig.

gunzip godtar en liste over filer på kommandolinjen og erstatter enhver fil hvis navn slutter på .gz, -gz, .z, -z, _z eller .Z og som starter med det riktige magiske tallet med en utpakket fil uten originalen Utvidelse. gunzip gjenkjenner også de spesielle utvidelsene .tgz og .taz som forkortelser for henholdsvis .tar.gz og .tar.Z. Ved komprimering bruker gzip filtypen .tgz om nødvendig i stedet for å avkorte en fil med filtypen .tar.

gunzip kan for øyeblikket dekomprimere filer laget av gzip, ZIP , komprimere, komprimere -H eller pack. Deteksjonen av inndataformatet er automatisk. Når du bruker de to første formatene, ser gunzip etter en 32-biters CRC. For pakke sjekker gunzip lengden på den utpakkede filen. Standard komprimeringsformat ble ikke designet for å tillate konsistenskontroller. Men gunzip er noen ganger i stand til å oppdage en .Z-fil med feil. Hvis du får en feilmelding når du pakker ut en .Z-fil, ikke anta at filen er riktig bare fordi standard uncompress ikke oppdager feilen. Dette betyr vanligvis bare at standard uncompress ikke sjekker input, og stille genererer søppel ved utgangen. SCO-komprimering -H-formatet (lzh-komprimeringsmetoden) inkluderer ikke en CRC, men tillater fortsatt noen konsistenskontroller.

Filer opprettet av zip kan bare dekomprimeres av gzip hvis de inneholder en enkelt fil komprimert med "deflasjonsmetoden". Denne muligheten er kun ment å hjelpe til med å konvertere tar.zip-filer til tar.gz-format. For å pakke ut zip-filer med flere medlemmer, bruk unzip i stedet for gunzip.

zcat er identisk med gunzip -c (på noen systemer kan zcat installeres som gzcat for å bevare den opprinnelige koblingen for å komprimere). zcat dekomprimerer enten en liste over filer på kommandolinjen eller standardinndata og skriver de dekomprimerte dataene til standardutdata. zcat vil pakke ut filer som har det riktige magiske tallet enten de har .gz-suffikset eller ikke.

Gzip bruker Lempel-Ziv-algoritmen som brukes i zip og PKZIP . Mengden komprimering som oppnås avhenger av størrelsen på inngangen og fordelingen av de vanlige understrengene. Vanligvis reduseres tekster som kildekoder eller engelske koder med 60-70 %. Komprimering er generelt mye bedre enn det som kan oppnås fra LZW (brukt i komprimering), Huffman-koding (brukt i pakken) eller adaptiv Huffman-koding (kompakt).

Komprimering utføres alltid, selv om den komprimerte filen er litt større enn originalfilen. Den verste utvidelsen er noen få biter for gzip-filoverskriften, pluss 5 byte per 32K-blokk, eller et utvidelsesforhold på 0,015 % for større filer. Merk at antallet diskblokker som faktisk brukes aldri økes. gzip bevarer modusen, egenskapene og datoene til filer når de komprimeres eller dekomprimeres.

Filformat

Gzip er basert på Deflate - algoritmen som kombinerer LZ77 og Huffman Encoding . DEFLATE var ment som en erstatning for LZW -algoritmen og andre patentbeskyttede komprimeringsalgoritmer, som på den tiden begrenset brukbarheten til komprimering og andre kjente arkiveringsprogrammer.

Begrepet gzip refererer ofte til filformatet med samme navn, som er sammensatt av:

Selv om dette filformatet lar deg sette sammen flere strømmer av innkommende data (som er dekomprimert og sammenkoblet som en enkelt strøm), brukes gzip vanligvis til å komprimere en enkelt fil. Komprimerte arkiver lages vanligvis ved å pakke en samling filer ved å bruke et arkiveringsprogram som TAR og deretter komprimere det resulterende arkivet. Filen .tar.gzo .tgzblir ofte referert til som en komprimert tarball .

gzip skal ikke forveksles med ZIP -filformatet , som også bruker DEFLATE-algoritmen. ZIP-formatet kan inneholde samlinger av filer uten å måtte ty til et eksternt arkiveringsprogram, men resultatet er mindre kompakt enn det som oppnås med gzip i forbindelse med et arkiveringsprogram som tar, da filene er individuelt komprimert og du derfor ikke kan ta fordel av redundansene som finnes mellom forskjellige filer ( solid komprimering ).

zlib er et programvarebibliotek som tilbyr en abstraksjon av DEFLATE-algoritmen og som inkluderer i sin API både støtte for gzip -formatet og enkle funksjoner for å administrere komprimerte datastrømmer. zlib-strømformatet, DEFLATE og gzip -filformatet ble standardisert som henholdsvis RFC 1950 , RFC 1951 og RFC 1952 .

Siden overskriften til gzip-filen inneholder et tidsstempel , må du bruke programmer som zcmp eller zdiff for å finne ut om to gzip-filer inneholder samme data i komprimert form.

Annen bruk

HTTP / 1.1-protokollen lar klienter vilkårlig be om komprimert innhold fra serveren. Standarden gir to komprimeringsmetoder: "gzip" (innholdet inkludert i gzip-strømmen) og "deflate" (innholdet i et råformat, uten overskrift). De støttes begge av mange klientbiblioteker og nesten alle moderne nettlesere.

Siden slutten av 1990-tallet har bzip2 , et filkomprimeringsverktøy basert på blokksorteringsalgoritmen , fått en viss popularitet som erstatning for gzip. Den produserer betydelig mindre filer (spesielt for kildekoder og andre strukturerte tekster), men på bekostning av større minneforbruk og beregningstid (til og med opptil 4 ganger større). De bzip2-komprimerte tarballene.tar.bz2 kalles vanligvis .

AdvanceCOMP har en DEFLATE-implementering som produserer gzip-kompatible filer med bedre komprimering enn selve gzip.

Det tilsvarende programmet for å pakke ut gzip-filer er gunzip .

Relaterte elementer

Andre prosjekter

Eksterne lenker