NAZWA¶
compress, uncompress, zcat - kompresuj i dekompresuj dane (wersja 4.1)
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
compressi
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.
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.
ZOBACZ TAKŻE¶
pack(1), compact(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.
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/.