gzip(1)

Från Wiki.linux.se
Version från den 28 augusti 2025 kl. 17.28 av Admin (diskussion | bidrag) (→‎FLAGGOR)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

gzip(1)

NAMN

gzip, gunzip, zcat – komprimera eller expandera filer

SYNOPSIS

gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ namn ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffix] [ namn ... ]
zcat [ -fhLV ] [ namn ... ]

BESKRIVNING

gzip minskar storleken på de angivna filerna med hjälp av Lempel-Ziv-kodning (LZ77). När det är möjligt ersätts varje fil med en fil som har tillägget .gz, samtidigt som ägarskap, rättigheter samt åtkomst- och ändringstider behålls. (Standardtillägget är -gz för VMS, z för MSDOS, OS/2 FAT, Windows NT FAT och Atari.)

Om inga filer anges, eller om ett filnamn är "-", komprimeras standardinmatningen till standardutmatningen. gzip försöker endast komprimera vanliga filer och ignorerar symboliska länkar.

Om det komprimerade filnamnet är för långt för filsystemet trunkeras det. gzip försöker bara trunkera de delar av filnamnet som är längre än 3 tecken (delar avgränsas av punkter). Om namnet bara består av små delar trunkeras de längsta delarna. Exempel: om filnamn är begränsade till 14 tecken blir gzip.msdos.exe till gzi.msd.exe.gz. Namn trunkeras inte på system som inte har filnamnsbegränsning.

Som standard sparar gzip det ursprungliga filnamnet och tidsstämpeln i den komprimerade filen. Dessa används vid dekomprimering med flaggan -N. Detta är användbart om filnamnet trunkerades eller tidsstämpeln inte bevarades vid filöverföring.

Komprimerade filer kan återställas till sin ursprungliga form med gzip -d, gunzip eller zcat. Om det ursprungliga namnet som sparades i den komprimerade filen inte är giltigt i filsystemet konstrueras ett nytt giltigt namn.

gunzip tar en lista med filer på kommandoraden och ersätter varje fil vars namn slutar med .gz, -gz, .z, -z, _z eller .Z och som börjar med rätt magiskt nummer, med en okomprimerad fil utan originaländelsen. gunzip känner också igen ändelserna .tgz och .taz som förkortningar för .tar.gz respektive .tar.Z. Vid komprimering använder gzip ändelsen .tgz i stället för att trunkera filer som slutar på .tar.

gunzip kan för närvarande dekomprimera filer skapade av gzip, zip, compress, compress -H eller pack. Indataformatet detekteras automatiskt. Vid användning av de två första formaten kontrollerar gunzip en 32-bitars CRC. För pack kontrolleras okomprimerad längd. Det klassiska compress-formatet designades inte för konsistenskontroller, men gunzip kan ibland ändå upptäcka en felaktig .Z-fil. Om ett fel uppstår vid dekomprimering av en .Z-fil ska man alltså inte anta att den är korrekt bara för att standardkommandot uncompress inte klagar. Det betyder bara att uncompress inte kontrollerar sin indata. Formatet SCO compress -H (lzh) inkluderar inte CRC men möjliggör vissa konsistenskontroller.

Filer skapade med zip kan bara packas upp av gzip om de innehåller en enda medlem som är komprimerad med metoden "deflation". Detta är endast tänkt för att konvertera tar.zip-filer till tar.gz-format. För att extrahera en enkel zip-fil kan man köra t.ex.:

gunzip < foo.zip
eller
gunzip -S .zip foo.zip

För zip-filer med flera medlemmar ska unzip användas i stället.

zcat är identiskt med gunzip -c. (På vissa system installeras det som gzcat för att bevara länken till compress.) zcat dekomprimerar en lista av filer eller standardinmatning och skriver resultatet till standardutmatning. Det fungerar oavsett om filen har suffixet .gz eller inte, så länge magiskt nummer är korrekt.

gzip använder Lempel-Ziv-algoritmen som även används i zip och PKZIP. Kompressionsgraden beror på indata och hur ofta substrängar återkommer. Vanligtvis minskas text, t.ex. källkod eller engelska texter, med 60–70%. Kompressionen är generellt mycket bättre än den som uppnås med LZW (som i compress), Huffman-kodning (som i pack) eller adaptiv Huffman-kodning (compact).

Komprimering görs alltid, även om resultatet blir något större än originalet. Sämsta fall är ett fåtal byte för gzip-huvudet samt 5 byte per 32 KB block (≈0,015% expansion). Antalet fysiskt använda diskblock ökar nästan aldrig. gzip bevarar rättigheter, ägarskap och tidsstämplar både vid komprimering och dekomprimering.

Formatet för gzip-filer specificeras i P. Deutsch, GZIP file format specification version 4.3, RFC 1952 (maj 1996). Zip-deflate-formatet specificeras i P. Deutsch, DEFLATE Compressed Data Format Specification version 1.3, RFC 1951 (maj 1996).

FLAGGOR

  • -a, --ascii

Ascii-textläge: konvertera radslut enligt lokala konventioner. Endast på vissa icke-Unix-system (t.ex. MSDOS, där CRLF → LF vid komprimering och LF → CRLF vid dekomprimering).

  • -c, --stdout, --to-stdout

Skriv utdata till standardutmatning och behåll originalfilerna. Vid flera infiler skapas en sekvens av separata gzip-medlemmar. För bättre kompression bör filerna slås ihop först.

  • -d, --decompress, --uncompress

Dekomprimera.

  • -f, --force

Tvinga komprimering/dekomprimering även om filen redan finns, har flera länkar eller om in/utdata går via terminal. Om indatan inte känns igen men flaggan --stdout anges kopieras datan oförändrad (dvs. zcat beter sig som cat).

  • -h, --help

Visa hjälpskärm och avsluta.

  • -l, --list

Lista fält för varje komprimerad fil:

 komprimerad storlek, okomprimerad storlek, kompressionsgrad, filnamn.  

Med --verbose visas även metod, CRC och tidsstämpel. Med --quiet döljs titlar och totalsummor.

  • -L, --license

Visa licenstext och avsluta.

  • -n, --no-name

Spara inte ursprungligt filnamn/tid vid komprimering. Vid dekomprimering används bara komprimerat namn (utan .gz) och tidsstämpeln tas från komprimerade filen.

  • -N, --name

Spara alltid ursprungligt namn/tid vid komprimering. Återställ dessa vid dekomprimering om de finns.

  • -q, --quiet

Undertryck alla varningar.

  • -r, --recursive

Traversera kataloger rekursivt. Vid komprimering eller dekomprimering påverkas alla filer i katalogerna.

  • -S .suf, --suffix .suf

Använd ett annat suffix än .gz . Vid dekomprimering läggs suffixet först i listan över suffix som prövas.

  • -t, --test

Kontrollera integritet på komprimerad fil.

  • -v, --verbose

Visa filnamn och procentuell reduktion.

  • -V, --version

Visa versionsnummer och kompileringsflaggor.

  • -#, --fast, --best

Justera kompressionsnivå. -1 eller --fast = snabbast, minst kompression. -9 eller --best = långsammast, bäst kompression. Standard är -6.

AVANCERAD ANVÄNDNING

Flera komprimerade filer kan sammanfogas. gunzip extraherar då alla medlemmar på en gång. Exempel:

gzip -c fil1 > foo.gz
gzip -c fil2 >> foo.gz
gunzip -c foo

motsvarar

cat fil1 fil2

Vid skada på en medlem i en .gz-fil kan övriga återställas genom att ta bort den skadade delen. För bästa kompression bör filerna slås ihop innan komprimering:

cat fil1 fil2 | gzip > foo.gz

För att recomprimera en gammal fil:

gzip -cd old.gz | gzip > new.gz

Om filen innehåller flera medlemmar rapporterar --list storlek/CRC för den sista. För total storlek:

gzip -cd fil.gz | wc -c

För att skapa ett arkiv där medlemmar kan extraheras separat bör tar eller zip användas. GNU tar har flaggan -z för att automatiskt använda gzip.

MILJÖ

Miljövariabeln GZIP kan innehålla standardflaggor. Exempel:

sh:   GZIP="-8v --name"; export GZIP
csh:  setenv GZIP "-8v --name"
MSDOS: set GZIP=-8v --name

På VAX/VMS används variabeln GZIP_OPT.

SE ÄVEN

DIAGNOSTIK

Returvärde är normalt 0. Vid fel returneras 1, vid varning 2. Exempel:

Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]

Felmeddelanden:

  • fil: not in gzip format – inte komprimerad.
  • fil: Corrupt input. Use zcat to recover some data – skadad fil.
  • fil: compressed with xx bits, can only handle yy bits – inkompatibelt.
  • fil: already has .gz suffix – ingen ändring.
  • fil already exists; do you wish to overwrite (y/n)? – fråga om överskrivning.
  • gunzip: corrupt input – SIGSEGV, ofta korrupt fil.
  • xx.x% – procent sparad.
  • -- not a regular file or directory: ignored – symboliska länkar etc. ignoreras.
  • -- has xx other links: unchanged – flera hårda länkar; ingen ändring (använd -f för att tvinga).

BEGRÄNSNINGAR

Vid skrivning till band måste ofta block fyllas ut med nollor. Detta kan orsaka varningar vid dekomprimering. Använd --quiet för att undertrycka. Exempel med GNU tar:

sh:   GZIP="-q" tar -xfz --block-compress /dev/rst0
csh:  (setenv GZIP -q; tar -xfz --block-compr /dev/rst0)

FEL

  • --list rapporterar felaktig storlek för filer ≥ 4 GB.
  • Ibland ger --best sämre resultat än standardnivån -6.
  • På mycket redundanta filer kan compress ge bättre resultat än gzip.

COPYRIGHT

Copyright © 1992–1993 Jean-loup Gailly Copyright © 1998, 1999, 2001, 2002 Free Software Foundation, Inc.

Tillstånd ges att kopiera och distribuera oförändrade versioner av denna manual. Modifierade versioner får distribueras under samma villkor. Översättningar får spridas under samma villkor, så länge licenstexten bevaras (eller godkänd översättning av den).

REFERENSER

Se även: 7z(1), 7za(1), zip(1), unzip(1), compress(1), zgrep(1), xz(1) m.fl.


Sidslut

Orginalhemsidan på Engelska : https://linux.die.net/man/1/gzip Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.