COMPRESS(1)

NAZWA
compress, uncompress, zcat - kompresuj i dekompresuj dane

SKŁADNIA
compress [ -f ] [ -k ] [ -v ] [ -c ] [ -V ] [ -r ] [ -b limit_bitów ] [ -- ] [ nazwa ... ]
uncompress [ -f ] [ -k ] [ -v ] [ -c ] [ -V ] [ -- ] [ nazwa ... ]
zcat [ -V ] [ -- ] [ nazwa ... ]

OPIS
compress redukuje rozmiar podanych plików używając adaptywnego kodowania algorytmem Lempel-Ziv. Zawsze, jeżeli jest to możliwe, do nazwy pliku dodawane jest rozszerzenie .Z, przy zachowaniu informacji o właścicielu pliku, trybie dostępu oraz czasie dostępu i modyfikacji. Jeżeli nie podano nazwy żadnego pliku, dane do kompresji pobierane są ze standardowego wejścia, a po skompresowaniu zapisywane na standardowe wyjście. compress kompresuje jedynie zwykłe pliki. W szczególności, ignoruje dowiązania symboliczne. Jeżeli plik ma wiele twardych dowiązań, compress nie podda go kompresji, chyba że zostanie uruchomiony z opcją -f.

Jeżeli program został uruchomiony w pierwszym planie bez opcji -f, użytkownik będzie pytany przed nadpisywaniem istniejących plików.

Skompresowane pliki mogą być odtworzone do normalnej postaci poleceniem uncompress lub zcat.

uncompress uruchamiany jest z listą plików w linii poleceń. Następnie każdy plik, którego nazwa kończy się rozszerzeniem .Z i w nagłówku pliku znajduje się prawidłowa liczba (magic number) jest dekompresowany i z jego nazwy usuwane jest rozszerzenie .Z. Zdekompresowny plik będzie miał te same właściwości, co plik skompresowany, tzn. właściciela, tryb dostępu oraz czas dostępu i modyfikacji.

The -k option makes compress/uncompress keep the input files instead of automatically removing them.

Opcja -c powoduje, że programy compress i uncompress zapisują pliki wyjściowe na standardowe wyjście; w ten sposób oryginalne pliki są nienaruszane.

zcat działa tak samo, jak uncompress -c. zcat dekompresuje pliki z listy podanej w linii poleceń lub pobiera dane ze standardowego wejścia, a następnie zapisuje zdekompresowane dane na standardowe wyjście. zcat dokonuje dekompresji plików po sprawdzeniu, że w nagłówku pliku znajduje się właściwa liczba (magic number); nie jest wymagane, aby nazwa pliku miała rozszerzenie .Z.

If the -r flag is specified, compress will operate recursively. If any of the file names specified on the command line are directories, compress will descend into the directory and compress all the files it finds there. When compressing, any files already compressed will be ignored, and when decompressing, any files already decompressed will be ignored.

Opcja -V spowoduje wypisanie na standardowe wyjście błędów wersji programu, jak również opcji preprocesora użytych w trakcie kompilacji. Następnie dokonywana jest kompresja/dekompresja podanych plików.

compress używa zmodyfikowanego algorytmu Lempel-Ziv spopularyzowanego w artykule "A Technique for High Performance Data Compression" autorstwa Terry'ego A. Welcha, który ukazał się w IEEE Computer, vol. 17, no. 6 (lipiec 1984), strony. 8-19. Jednakowe podciągi w pliku są początkowo zastępowane 9-bitowymi kodami o wartościach większych od 257. Gdy osiągnięta zostanie wartość kodów 512, algorytm zaczyna używać kodów 10-bitowych, potem 11-bitowych itd. aż do osiągnięcia limitu podanego w linii poleceń opcją -b, domyślnie jest to 16 bitów. limit_bitów musi się zawierać pomiędzy 9 a 16. Wartość domyślna może być zmieniona w kodzie źródłowym, aby umożliwić działanie programu na komputerach z mniejszą ilością pamięci.

Gdy osiągnięty zostanie limit_bitów, compress zaczyna kontrolować współczynnik kompresji. Jeżeli współczynnik jest zwiększany, compress kontynuuje używanie bieżącego słownika. Jednakże, jeżeli współczynnik się zmniejsza, compress tworzy od nowa tablicę podciągów, co pozwala algorytmowi zaadaptować się do kolejnej porcji danych.

Zauważ, że opcja -b nie jest używana przez program uncompress, ponieważ parametr limit_bitów jest zapisywany wraz z kompresowanymi danymi. Zapisywana jest również właściwa wartość w nagłówku (magic number), aby upewnić się, że nie zostanie podjęta próba dekompresji przypadkowych danych, lub kompresja danych wcześniej poddanych kompresji.

Wydajność kompresji zależy od wielkości danych wejściowych, ilości bitów używanych w kodach oraz rozmieszczenia w danych jednakowych podciągów. Dane takie, jak kod źródłowy lub tekst w języku angielskim są redukowane o 50-60 procent. Osiągany stopień kompresji jest przeważnie dużo większy niż w kodowaniu Huffmana (używanym przez program pack), lub adaptywnym kodowaniu Huffmana (compact), kompresja przebiega też szybciej.

Po podaniu opcji -v po skompresowaniu każdego pliku wypisywana jest informacja na temat osiągniętego stopnia kompresji.

-- may be used to halt option parsing and force all remaining arguments to be treated as paths.

DIAGNOSTYKA
Exit status is normally 0; if the last file is larger after (attempted) compression, the status is 2; if an error occurs, exit status is 1.

Usage: compress [-dfvcVr] [-b maxbits] [file ...]
W linii poleceń znalazły się nieprawidłowe opcje.
Missing maxbits
Po opcji -b brakowało parametru.
file: not in compressed format
Plik podany jako parametr programu uncompress nie jest skompresowany.
file: compressed with xx bits, can only handle yy bits
Plik został skompresowany przez program obsługujący większą ilość bitów niż program compress na tym komputerze. Skompresuj plik ponownie z mniejszym parametrem limit_bitów.
file: already has .Z suffix -- no change
Plik z rozszerzeniem nazwy .gz nie może być ponownie kompresowany. Zmień nazwę pliku i spróbuj ponownie.
file: filename too long to tack on .Z
Plik nie może być skompresowany, ponieważ jego nazwa jest dłuższa niż 12 znaków. Zmień nazwę pliku i spróbuj ponownie. Ta informacja nie pojawia się na systemach BSD.
file already exists; do you wish to overwrite (y or n)?
Należy odpowiedzieć "y", by nadpisać istniejący już plik wyjściowy lub "n" w przeciwnym przypadku.
uncompress: corrupt input
Program otrzymał sygnał SIGSEGV, co zazwyczaj oznacza, że plik wejściowy jest uszkodzony.
Compression: xx.xx%
Osiągnięty stopień kompresji (tylko po podaniu opcji -v.)
-- not a regular file or directory: ignored
Gdy plik wejściowy nie jest zwykłym plikiem lub katalogiem (tzn. jest np. dowiązaniem symbolicznym, gniazdem, kolejką FIFO, plikiem urządzenia), jest pozostawiany bez zmian.
-- has xx other links: unchanged
Plik wejściowy ma twarde dowiązania i nie może zostać zmieniony. Więcej informacji można znaleźć w opisie polecenia ln(1). Użycie opcji -fwymusi kompresję plików mających twarde dowiązania.
-- file unchanged
Rozmiar pliku nie zmniejszył się po kompresji. Plik zostanie pozostawiony w oryginalnej postaci.

USTERKI
Mimo, że skompresowane pliki są kompatybilne na komputerach z dużą ilością pamięci, dla plików, które będą odczytywane na innych komputerach należy używać opcji -b12, ponieważ dekompresja może być niemożliwa na komputerach z mniejszą ilością pamięci (64KB lub mniej, jak na komputerach serii DEC PDP, lub Intel 80286, etc.)

ZOBACZ TAKŻE
pack(1), compact(1)

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Łukasz Kowalczyk <lukow@tempac.okwf.fuw.edu.pl>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.