GZIP(1) General Commands Manual GZIP(1) NAZWA gzip, gunzip, zcat - kompresuje i dekompresuje pliki SKLADNIA gzip [-acdfhklLnNrtvV19] [-S rozszerzenie] [nazwa ...] gunzip [-acfhklLnNrtvV] [-S rozszerzenie] [nazwa ... ] zcat [-fhLV] [nazwa ...] OPIS Polecenie gzip redukuje rozmiar podanych plikow uzywajac algorytmu Lempel-Ziv (LZ77). Zawsze, jezeli jest to mozliwe, do nazwy pliku dodawane jest rozszerzenie .gz, przy zachowaniu informacji o wlascicielu pliku, trybie dostepu, oraz czasie dostepu i modyfikacji (domyslnym rozszerzeniem nazwy pliku jest .z dla MSDOS, OS/2 FAT, Windows NT FAT i Atari). Jezeli nie podano nazwy zadnego pliku, lub podano nazwe ,,-", dane do kompresji pobierane sa ze standardowego wejscia, a po skompresowaniu zapisywane na standardowe wyjscie. Polecenie gzip kompresuje jedynie zwykle pliki. W szczegolnosci ignoruje dowiazania symboliczne. Jezeli nazwa skompresowanego pliku jest za dluga dla systemu plikow, gzip obcina ja. Polecenie gzip usiluje obcinac jedynie czesci nazw plikow dluzsze niz 3 znaki (czesc nazwy pliku znajduje sie pomiedzy kropkami). Jezeli nazwa sklada sie tyko z krotkich czesci, obcinane sa najdluzsze z nich. Na przyklad, jezeli dlugosc nazwy plikow jest ograniczona do 14 znakow, gzip.msdos.exe jest kompresowane do gzi.msd.exe.gz. Jezeli w systemie plikow nie ma ograniczenia dlugosci nazwy pliku, nazwa nie jest obcinana. Domyslnie gzip zachowuje oryginalna nazwe pliku oraz czas modyfikacji i dostepu wewnatrz skompresowanego pliku. Jest ona uzywana podczas dekompresji z opcja -N. Jest to uzytecznie, gdy nazwa skompresowanego pliku zostala obcieta lub czas modyfikacji nie zostal zachowany po transferze pliku. Skompresowane pliki moga byc odtworzone do pierwotnej postaci przy uzyciu polecen gzip -d, gunzip lub zcat. Jezeli oryginalna nazwa pliku zachowana wewnatrz pliku skompresowanego nie moze byc odtworzona w danym systemie plikow, na podstawie oryginalnej nazwy tworzona jest nowa. gunzip uruchamiany jest z lista plikow w linii polecen. Nastepnie kazdy plik, ktorego nazwa konczy sie rozszerzeniem .gz, -gz, .z, -z lub _z (wielkosc znakow bez znaczenia) i w naglowku pliku znajduje sie prawidlowa liczba (magic number) jest dekompresowany i zastepowany oryginalnym plikiem bez jednego z powyzszych rozszerzen. gunzip rozpoznaje tez specjalne rozszerzenia nazw plikow .tgz i .taz jako skroty dla, odpowiednio, .tar.gz i .tar.Z. Podczas kompresji pliku z rozszerzeniem .tar, jezeli jest to konieczne, gzip uzywa rozszerzenia .tgz zamiast obcinania nazwy pliku. gunzip moze dokonac dekompresji plikow stworzonych przez programy gzip, zip, compress, compress -H lub pack. Format pliku wejsciowego jest rozpoznawany automatycznie. Podczas dekompresji plikow w pierwszych dwoch formatach gunzip sprawdza 32-bitowa sume kontrolna CRC. W wypadku plikow stworzonych przez programy pack i gunzip sprawdzana jest dlugosc zdekompresowanego pliku. Standardowy format programu compress nie umozliwial kontroli poprawnosci. Jednak niekiedy gunzip jest w stanie wykryc uszkodzony plik .Z. Jezeli w trakcie dekompresji takiego pliku pojawia sie bledy, nie nalezy sadzic, ze plik jest w porzadku, bo program uncompress nie zglaszal problemow. Oznacza to tylko, ze uncompress nie kontroluje poprawnosci plikow wejsciowych. Format plikow compress -H systemu SCO (kompresja metoda LZH) rowniez nie obsluguje kontroli poprawnosci, lecz takze mozliwe jest podstawowe sprawdzenie spojnosci pliku. Pliki stworzone przez program zip moga byc zdekompresowane tylko, jezeli w archiwum .zip znajduje sie jeden plik i jest on skompresowany metoda ,,deflation". Jest to opcja przeznaczona do konwersji plikow .tar.zip do formatu .tar.gz. Aby zdekompresowac plik .zip zawierajacy pojedynczy plik, mozna uzyc polecen gunzip < foo.zip czy gunzip -S .zip foo.zip. Do dekompresji archiwow .zip zawierajacych wiecej niz jeden plik nalezy uzyc programu unzip zamiast gunzip. Polecenie zcat dziala tak samo, jak gunzip -c (w niektorych systemach zcat moze byc zainstalowany jako gzcat, aby zachowac oryginalne dowiazanie do programu compress). zcat dekompresuje pliki z listy podanej w linii polecen lub pobiera dane ze standardowego wejscia, a nastepnie zapisuje zdekompresowane dane na standardowym wyjsciu. zcat dokonuje dekompresji plikow po sprawdzeniu, ze w naglowku pliku znajduje sie wlasciwa liczba (magic number); nie jest wymagane, aby nazwa pliku miala rozszerzenie .gz. Polecenie gzip korzysta z algorytmu Lempel-Ziv uzytego w programach zip i PKZIP. Wydajnosc kompresji zalezy od wielkosci danych wejsciowych oraz rozmieszczenia w danych jednakowych podciagow. Dane takie, jak kod zrodlowy lub tekst w jezyku angielskim sa zwykle redukowane o 60-70%. Osiagany stopien kompresji jest przewaznie duzo wiekszy niz przy uzyciu kodowania LZW (uzywanym przez program compress), Huffmana (pack) lub adaptywnym kodowaniu Huffmana (compact). Kompresja jest przeprowadzana zawsze, nawet jezeli plik wyjsciowy jest wiekszy niz oryginalny. W najgorszym przypadku narzut moze wynosic kilka bajtow dla naglowka i 5 bajtow dla kazdego bloku o dlugosci 32 KiB. Ewentualnie wspolczynnik powiekszenia pliku moze wynosic 0,015% dla bardzo duzych plikow. Nalezy zauwazyc, ze prawie nigdy nie zwieksza sie liczba blokow uzywanych przez plik na dysku. gzip zwykle zachowuje tryb dostepu oraz czas modyfikacji pliku podczas kompresji i dekompresji. Jesli ma sie odpowiednie przywileje, zachowa rowniez wlasciciela i grupe pliku. OPCJE -a --ascii Tryb tekstowy. Przeksztalca znaki konca linii, uzywajac lokalnych konwencji. Ta opcja jest dostepna jedynie na kilku systemach nieuniksowych. W systemie MS-DOS podczas kompresji znaki CR LF sa przeksztalcane na LF, a podczas dekompresji z powrotem. -c --stdout --to-stdout Wypisuje skompresowane dane na standardowe wyjscie; oryginalne pliki pozostaja nienaruszone. Jezeli podanych zostalo kilka plikow wejsciowych, kazdy z nich kompresowany jest oddzielnie. Dla osiagniecia lepszej kompresji nalezy polaczyc pliki ze soba przed poddaniem ich kompresji. -d --decompress --uncompress Dekompresuje plik. -f --force Kompresuje plik nawet, jezeli istnieja do niego twarde dowiazania lub plik wyjsciowy juz istnieje, lub tez, jezeli dane sa uprzednio skompresowane. Jezeli format danych wejsciowych nie jest rozpoznany, a podana zostala opcja --stdout, dane zostaja bez zmian przekopiowane na standardowe wyjscie. zcat zachowuje sie w takim wypadku jak cat. Jezeli opcja -f nie zostala podana i program zostal uruchomiony w pierwszym planie, gzip pyta uzytkownika przed nadpisaniem istniejacego pliku. -h --help Wyswietla ekran pomocy i konczy dzialanie. -k --keep Zachowuje (nie usuwa) pliki wejsciowe przy kompresji lub dekompresji. -l --list Dla kazdego skompresowanego pliku wypisuje nastepujace informacje: compressed size: rozmiar skompresowanego pliku uncompressed size: rozmiar zdekompresowanego pliku ratio: wspolczynnik kompresji (0.0% jezeli nieznany) uncompressed_name: nazwa zdekompresowanego pliku Rozmiar zdekompresowanego pliku jest wypisywany jako -1 dla plikow nie bedacych w formacie gzip, jak na przyklad pliki .Z. Aby poznac rozmiar takiego pliku po dekompresji, mozna uzyc polecenia: zcat file.Z | wc -c Po podaniu rowniez opcji --verbose dodatkowo sa wyswietlane nastepujace informacje: method: metoda kompresji crc: 32-bitowa suma kontrolna CRC zdekompresowanych danych date & time: pole daty/czasu oryginalnego pliku Aktualnie dostepne metody kompresji to deflate, compress, lzh (SCO compress -H) oraz pack. Suma CRC dla plikow w formacie innym niz gzip jest podawana jako ffffffff. Po podaniu opcji --name podawane sa dane oryginalnego pliku zawarte w pliku skompresowanym (nazwa, data/czas), jezeli zostana tam znalezione. Po podaniu opcji --verbose wyswietlany jest wspolny rozmiar i wspolczynnik kompresji wszystkich plikow, chyba ze nie dla wszystkich plikow te dane sa dostepne. Po podaniu opcji --quiet linie naglowka i podsumowania nie sa wyswietlane. -L --license Wyswietla informacje o licencji i konczy dzialanie programu. -n --no-name Podczas kompresji nie zachowuje w skompresowanym pliku oryginalnej nazwy, trybu dostepu oraz czasu modyfikacji i dostepu (oryginalna nazwa jest zapisywana, jezeli nazwa pliku bedzie musiala byc obcieta). Podczas dekompresji nie odtwarza oryginalnej nazwy pliku (usuwa tylko rozszerzenie.gz z nazwy pliku), nie odtwarza rowniez oryginalnego pola daty/czasu - zamiast tego pole to zostanie skopiowane ze skompresowanego pliku. Jest to domyslna opcja podczas dekompresji. -N --name Podczas kompresji zawsze zachowuje oryginalna nazwe pliku oraz zachowuje sekundowa czesc pierwotnego czasu modyfikacji, jesli plik jest zwyklym plikiem, a jego znacznik czasu wynosi co najmniej 1 (1970-01-01 00:00:01 UTC) i mniej niz 2**32 (2106-02-07 06:28:16 UTC, zakladajac, ze nie sa liczone sekundy przestepne); jest to zachowanie domyslne. Podczas dekompresji odtwarza z zapisanego pliku nazwe pliku, a takze znacznik czasu, jesli jest obecny. Ta opcja jest uzyteczna na systemach z limitem dlugosci nazwy pliku lub po utracie oryginalnego pola daty/czasu po transferze pliku. -q --quiet Nie wyswietla zadnych ostrzezen. -r --recursive Przechodzi rekurencyjnie zawartosc katalogow. Jesli ktorakolwiek z nazw plikow podanych w linii polecen odnosi sie do katalogu, gzip przejdzie do tego katalogu i skompresuje wszystkie pliki, ktore w nim znajdzie (lub zdekompresuje w wypadku programu gunzip). -S .suf --suffix .suf Przy kompresowaniu uzywa rozszerzenia .suf zamiast .gz. Mozna uzyc dowolnego niepustego rozszerzenia, chociaz nalezy unikac innych niz .z lub .gz, aby uniknac zamieszania po transferze plikow do innego systemu. Przy dekompresowaniu dodaje .suf na poczatku listy rozszerzen do wyprobowania, przy tworzeniu nazwy pliku wyjsciowego z nazwy pliku wejsciowego. --synchronous Uzywa synchronicznego wyjscia. Korzystanie z tej opcji zmniejszy ryzyko utraty danych przez gzip w przypadku zalamania systemu, lecz moze go wyraznie spowolnic. -t --test Sprawdza spojnosc skompresowanego pliku i konczy dzialanie. -v --verbose Wyswietla nazwe i procent kompresji kazdego skompresowanego i nieskompresowanego pliku. -V --version Wyswietla numer wersji oraz opcje kompilacji i konczy dzialanie. -# --fast --best Okresla predkosc kompresji za pomoca cyfry #, gdzie -1 lub --fast oznacza najszybsza (lecz najmniej wydajna) kompresje, zas -9 lub --best oznacza najwolniejsza (lecz najbardziej wydajna) metode kompresji. Domyslna wartoscia jest -6 (tzn. zorientowana na lepsza kompresje kosztem predkosci). --rsyncable Przy synchronizowaniu skompresowanego pliku pomiedzy dwoma komputerami, opcja ta pozwala programowi rsync na przesylanie jedynie zmienionych plikow z archiwow, zamiast calego archiwum. W zwyklej sytuacji, po zmianie dowolnego pliku w archiwum, algorytm kompresujacy moze utworzyc nowa wersje archiwum, ktora jest odmienna od jego poprzedniej wersji. W takim przypadku konieczne jest przeslanie przez rsync calej nowej wersji archiwum na zdalny komputer. Dzieki tej opcji, rsync moze przeslac jedynie zmienione pliki oraz niewielki zestaw metadanych, koniecznych do zaktualizowania struktury archiwum w zmienionym fragmencie. ZAAWANSOWANE SPOSOBY UZYCIA Skompresowane pliki moga byc ze soba laczone; w takim wypadku gunzip zdekompresuje wszystkie pliki jednoczesnie. Na przyklad: gzip -c plik1 > foo.gz gzip -c plik2 >> foo.gz Nastepnie gunzip -c foo jest rownoznaczne z cat plik1 plik2 W wypadku, gdy jeden z polaczonych plikow zostanie uszkodzony, pozostale wciaz moga byc odzyskane (po usunieciu uszkodzonego pliku). Jednak znacznie lepsze efekty daje jednoczesne kompresowanie wszystkich plikow: cat plik1 plik2 | gzip > foo.gz daje lepsze wyniki kompresji niz gzip -c plik1 plik2 > foo.gz Aby ponownie skompresowac polaczone ze soba pliki w celu uzyskania lepszej kompresji, nalezy wykonac polecenie: gzip -cd stary.gz | gzip > nowy.gz Jezeli skompresowny plik zostal utworzony z kilku plikow, informacje o rozmiarze i sumie CRC uzyskane opcja --list dotycza tylko ostatniego pliku. Informacje o rozmiarze wszystkich plikow po dekompresji mozna uzyskac przy pomocy polecenia: gzip -cd plik.gz | wc -c Aby umiescic w archiwum kilka plikow, a nastepnie miec mozliwosc oddzielnego ich odzyskania, nalezy uzyc programow takich jak tar lub zip. Tar w wersji GNU obsluguje opcje -z, ktora powoduje wywolanie programu gzip w sposob niewidzialny dla uzytkownika. Gzip zostal zaprojektowany jako uzupelnienie programu tar; nie moze go zastapic. SRODOWISKO W przestarzalej zmiennej srodowiskowej GZIP moga sie znajdowac domyslne opcje dla programu gzip. Sa one odczytywane na poczatku; w ten sposob opcje w linii polecen maja przed nimi pierwszenstwo. Jako ze powoduje to problemy przy korzystaniu ze skryptow, funkcja ta jest obslugiwana tylko w przypadku opcji, ktore nie powinny narobic zbyt wiele szkod; dodatkowo gzip wypisze odpowiednie ostrzezenie. Funkcja ta bedzie usunieta w kolejnym wydaniu gzip. Jako zamiennika, mozna uzywac aliasu lub skryptu. Na przyklad, jesli gzip znajduje sie w katalogu /usr/bin, mozna dodac $HOME/bin do swojej PATH i utworzyc wykonywalny skrypt $HOME/bin/gzip zawierajacy: #! /bin/sh export PATH=/usr/bin exec gzip -9 "$@" ZOBACZ TAKZE znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1) Format pliku gzip jest opisany w: P. Deutsch, GZIP file format specification version 4.3, , Internet RFC 1952 (maj 1996). Format deflacji zipjest opisany w: P. Deutsch, DEFLATE Compressed Data Format Specification version 1.3, , Internet RFC 1951 (maj 1996). DIAGNOSTYKA Status zakonczenia jest normalnie rowny 0; jezeli wystapi blad, status zakonczenia jest rowny 1. Jezeli wystapi ostrzezenie, status zakonczenia jest rowny 2. Usage: gzip [-cdfhklLnNrtvV19] [-S suffix] [file ...] W linii polecen znalazly sie nieprawidlowe opcje. file: not in gzip format Podany plik nie jest skompresowany (komunikat programu gunzip). file: Corrupt input. Nalezy skorzystac z zcat, do odzyskania czesci danych. Skompresowany plik ulegl uszkodzeniu. Do miejsca uszkodzenia dane moga byc odzyskane poleceniem zcat file > recover file: compressed with xx bits, can only handle yy bits File zostal skompresowany (z uzyciem algorytmu LZW) przez program obslugujacy kody o wiekszej ilosci bitow niz program do dekompresji na tym komputerze. Nalezy skompresowac plik od nowa programem gzip, ktory osiaga lepszy wspolczynnik kompresji i uzywa mniej pamieci. file: already has .gz suffix -- no change Plik z rozszerzeniem nazwy .gz nie moze byc ponownie kompresowany. Zmien nazwe pliku i sprobuj ponownie. file already exists; do you wish to overwrite (y or n)? Nalezy odpowiedziec ,,y", by nadpisac istniejacy juz plik wyjsciowy lub ,,n" w przeciwnym przypadku. gunzip: corrupt input Program otrzymal sygnal SIGSEGV, co zazwyczaj oznacza, ze plik wejsciowy jest uszkodzony. xx.x% Percentage of the input saved by compression. (Tylko po podaniu opcji -v i -l). -- not a regular file or directory: ignored Gdy plik wejsciowy nie jest zwyklym plikiem lub katalogiem (tzn. jest np. dowiazaniem symbolicznym, gniazdem, kolejka FIFO, plikiem urzadzenia), jest pozostawiany bez zmian. -- has xx other links: unchanged Plik wejsciowy ma twarde dowiazania i nie moze zostac zmieniony. Wiecej informacji mozna znalezc w opisie polecenia ln(1). Uzycie opcji -f wymusi kompresje plikow majacych twarde dowiazania. OSTRZEZENIA Podczas zapisywania danych na tasmie zazwyczaj trzeba dodac na koncu odpowiednia liczbe zer, by ostatnia czesc danych zajmowala pelny blok. Gdy dane sa odczytywane przez program gunzip, wykrywa on, ze na koncu wlasciwych danych znajduja sie dodatkowo przypadkowe dane i wypisuje ostrzezenie. Aby tego uniknac, nalezy uzywac opcji --quiet. USTERKI Niekiedy (rzadko) zdarza sie, ze kompresja z opcja --best daje gorsze rezultaty niz z opcja domyslna (-6). Niektore pliki, w ktorych powtarza sie bardzo duzo sekwencji, sa lepiej kompresowane programem compress niz gzip. ZGLASZANIE BLEDOW Raporty o bledach mozna wysylac do . Strona internetowa GNU gzip: Ogolna pomoc dotyczaca oprogramowania GNU: PRAWA AUTORSKIE Copyright (C) 1998-1999, 2001-2002, 2012, 2015-2023 Free Software Foundation, Inc. Copyright (C) 1992, 1993 Jean-loup Gailly Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Lukasz Kowalczyk , Michal Gorny i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . podrecznik uzytkownika GZIP(1)