COMPRESS(1)

NAZWA
compress, uncompress, zcat - kompresuje i dekompresuje 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.

Opcja -k powoduje, że programy compress i uncompress pozostawiają pliki wejściowe, zamiast automatycznie je usuwać.

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.

Jeżeli podano opcję -r, compress będzie działał rekurencyjnie. Jeżeli w linii poleceń oprócz nazw plików podane zostaną nazwy katalogów, pliki w tych katalogach również zostaną poddane kompresji. Przy kompresowaniu, pliki już skompresowane zostaną zignorowane, a przy dekompresowaniu, pliki już zdekompresowane zostaną zignorowane.

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.

-- można użyć do zatrzymania przetwarzania opcji i wymuszenia, aby wszystkie pozostałe argumenty były traktowane jak ścieżki.

DIAGNOSTYKA
Status zakończenia jest normalnie równy 0; jeżeli ostatni plik jest większy po (próbie) kompresji, status wynosi 2; jeśli wystąpi błąd, status zakończenia jest równy 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
Tłumaczenie niniejszej strony podręcznika: Łukasz Kowalczyk <lukow@tempac.okwf.fuw.edu.pl> i Michał Kułach <michal.kulach@gmail.com>

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.