compress(1) kompresuj i dekompresuj dane (wersja 4.1)

Other Alias

uncompress, zcat

SKŁADNIA

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

OPIS

Uwaga! To tłumaczenie może być nieaktualne!

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 -c powoduje, że programy compressiuncompress 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.

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.

Kod wyjścia jest normalnie równy 0; jeżeli ostatni plik jest po (próbie) kompresji większy niż przedtem, kod wyjścia jest równy 2; jeżeli wystąpi jakiś inny błąd, kod wyjścia jest równy 1.

DIAGNOSTYKA

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 .Z 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)? Odpowiedz "y", jeżeli chcesz nadpisać istniejący już plik wyjściowy lub "n", jeżeli nie chcesz 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 znajdziesz w opisie polecenia ln(1). Użyj opcji -f, aby wymusić kompresję plików mających twarde dowiązania. -- file unchanged Rozmiar pliku nie zmniejszył się po kompresji. Plik zostanie pozostawiony w oryginalnej postaci.

PROBLEMY

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 -b 12, 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.)

Uruchomienie programu z opcją -r może niekiedy spowodować fałszywe komunikaty o błędach postaci

"<filename>.Z already has .Z suffix - ignored"

Mogą one zostać zignorowane. Wyjaśnienie znajduje się w komentarzu do funkcji compdir() w pliku compress.c.

INFORMACJE O TŁUMACZENIU

Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
man --locale=C 1 compress

Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.