Provided by: manpages-pl_0.7-1_all bug

NAZWA

       bzip2, bunzip2 - sortujący bloki kompresor/dekompresor plików, v1.0.6
       bzcat - dekompresuje pliki na standardowe wyjście
       bzip2recover - odzyskuje dane z uszkodzonych plików bzip2

SKŁADNIA

       bzip2 [-cdfkqstvzVL123456789] [nazwy_plików...]
       bzip2 [ -h|--help ]
       bunzip2 [ -fkvsVL ] [nazwy_plików...]
       bunzip2 [ -h|--help ]
       bzcat [ -s ] [nazwy_plików...]
       bzcat [ -h|--help ]
       bzip2recover nazwa_pliku

OPIS

       bzip2  kompresuje  pliki  przy użyciu algorytmu sortowania bloków Burrowsa-Wheelera i kodu
       Huffmana. Kompresja jest generalnie sporo lepsza od konwencjonalnych kompresorów  opartych
       o  metodę  LZ77/LZ78  i  jest  porównywalna  z  osiągnięciami statystycznych kompresorów z
       rodziny PPM.

       Opcje wiersza poleceń są w większości bardzo podobne do  tych  z  GNU  gzip,  ale  nie  są
       identyczne.

       bzip2  oczekuje  listy  plików  towarzyszących parametrom wiersza poleceń. Każdy plik jest
       zastępowany  przez  swoją  skompresowaną  wersję,  z  nazwą  "oryginalny_plik.bz2".  Każdy
       skompresowany  plik  ma  ten  sam  czas  modyfikacji,  uprawnienia  i,  jeśli  to możliwe,
       właściciela, co oryginał, po  to,  aby  te  ustawienia  mogły  zostać  odtworzone  podczas
       dekompresji.  Utrzymywanie nazwy plików nie jest do końca dokładne w tym sensie, że nie ma
       możliwości przetrzymywania daty, uprawnień, właściciela i nazw  plików  na  systemach,  na
       których brakuje tych możliwości lub mają ograniczenia co do długości nazwy, takich jak np.
       MS-DOS.

       bzip2 i bunzip2 standardowo nie nadpisują istniejących już plików. Aby to  robiły,  trzeba
       użyć parametru -f.

       Jeśli  nie  podano  żadnej  nazwy  pliku,  bzip2  kompresuje  ze  standardowego wejścia na
       standardowe wyjście. Odmawia wówczas wypisywania skompresowanego wyjścia na terminal, gdyż
       byłoby to całkiem niezrozumiałe i przez to bez większego sensu.

       bunzip2  (lub  bzip2  -d)  dekompresuje  wszystkie  podane  pliki.  Pliki,  które nie były
       utworzone przez bzip2, zostaną wykryte i zignorowane, a na ekranie  pojawi  się  komunikat
       ostrzegawczy.   bzip2  próbuje  zgadnąć  nazwę  dla  dekompresowanego  pliku w następujący
       sposób:

              nazwa_pliku.bz2    staje się   nazwa_pliku
              nazwa_pliku.bz     staje się   nazwa_pliku
              nazwa_pliku.tbz2   staje się   nazwa_pliku.tar
              nazwa_pliku.tbz    staje się   nazwa_pliku.tar
              inna_nazwa     staje się   inna_nazwa.out

       Jeśli plik nie ma jednego z następujących rozpoznawalnych rozszerzeń: .bz2, .bz, .tbz2 lub
       .tbz,  to  bzip2 napisze, że nie może zgadnąć nazwy pierwotnego pliku, i użyje oryginalnej
       nazwy z dodanym rozszerzeniem .out.

       Tak jak w przypadku kompresji, niepodanie żadnych  nazw  plików  powoduje  dekompresję  ze
       standardowego wejścia na standardowe wyjście.

       bunzip2   poprawnie   zdekompresuje   plik,   który  jest  połączeniem  dwóch  lub  więcej
       skompresowanych plików. Rezultatem jest połączenie odpowiednich nieskompresowanych plików.
       Obsługiwane jest również sprawdzanie spójności (-t) połączonych skompresowanych plików.

       Można  również  kompresować  lub  dekompresować  pliki  na  standardowe  wyjście  używając
       parametru  -c.  W  ten  właśnie  sposób  można  przeprowadzać   kompresję   wielu   plików
       równocześnie.   Powstałe  wyniki są przesyłane sekwencyjnie na standardowe wyjście.  W ten
       sposób  kompresja  wielu  plików  generuje  strumień   zawierający   reprezentacje   kilku
       skompresowanych plików. Taki strumień może być zdekompresowany poprawnie tylko przez bzip2
       w  wersji  0.9.0  lub  późniejszej.  Wcześniejsze   wersje   bzip2   zatrzymają   się   po
       zdekompresowaniu pierwszego pliku w strumieniu.

       bzcat (lub bzip2 -dc) dekompresuje wszystkie wybrane pliki na standardowe wyjście.

       bzip2  czyta  argumenty  ze zmiennych środowiskowych BZIP2 i BZIP, w podanej kolejności, i
       przetwarza je przed jakimikolwiek argumentami przeczytanymi  z  linii  poleceń.  To  dobra
       metoda na specyfikowanie standardowych ustawień.

       Kompresja  stosowana  jest  zawsze,  nawet  jeśli skompresowany plik jest nieco większy od
       pliku oryginalnego. Pliki mniejsze niż  około  sto  bajtów  stają  się  większe,  ponieważ
       mechanizm  kompresji  ma stały nagłówek wynoszący mniej więcej 50 bajtów. Przypadkowe dane
       (włączając wyjście większości kompresorów plików) są kodowane na mniej więcej  8,05  bitów
       na bajt, zwiększając plik o około 0,5%.

       Jako   dodatkowe   zabezpieczenie  bzip2  używa  32-bitowych  CRC,  aby  upewnić  się,  że
       zdekompresowana wersja pliku jest identyczna z oryginalną. To  strzeże  przed  stratami  w
       skompresowanych  danych  i  przed  niewykrytymi  błędami  w  bzip2  (na  szczęście  bardzo
       rzadkich). Możliwość niewykrycia utraty danych  jest  mikroskopijna,  mniej  więcej  jedna
       szansa  na  cztery miliardy dla każdego pliku. Trzeba jednak uważać, gdyż sprawdzenie jest
       dokonywane przed dekompresją, więc program poinformuje tylko o tym,  że  coś  jest  nie  w
       porządku.  Nie  pomoże  to  odzyskać  oryginalnych  nieskompresowanych  danych. Można użyć
       bzip2recover, aby spróbować odzyskać dane z uszkodzonych plików.

       Zwracane  wartości:  0  dla  normalnego  wyjścia,  1  dla  problemów  technicznych   (plik
       nieznaleziony,  niewłaściwy  parametr,  błąd wejścia/wyjścia itp.), 2 dla zasygnalizowania
       błędu skompresowanego pliku, 3 dla wewnętrznego błędu (np. bug),  który  zmusił  bzip2  do
       przerwania.

OPCJE

       -c --stdout
              Kompresuje lub dekompresuje na standardowe wyjście.

       -d --decompress
              Wymusza dekompresję.  bzip2, bunzip2 i bzcat są tak naprawdę tymi samymi programami
              i decyzja o tym, jakie akcje będą wykonane, jest podejmowana  na  podstawie  nazwy,
              jaka   została  użyta.  Ten  parametr  ma  wyższy  priorytet  i  wymusza  na  bzip2
              dekompresję.

       -z --compress
              Podobne do -d: wymusza kompresję, bez względu na sposób wywołania.

       -t --test
              Sprawdza integralność wybranego pliku/plików, ale nie dekompresuje ich. Wymusza  to
              próbną dekompresję i mówi, jaki jest rezultat.

       -f --force
              Wymusza zastępowanie plików wyjściowych. Normalnie bzip2 nie zastępuje istniejących
              plików wyjściowych. Flaga ta wymusza również na bzip2  łamanie  dowiązań  twardych,
              czego normalnie nie robi.

              bzip2  normalnie  odmawia  dekompresji plików, które nie mają poprawnych magicznych
              bajtów nagłówka. Jeśli jednak nastąpi wymuszenie (opcja -f), przetworzy takie pliki
              niezmodyfikowane. Jest to zachowanie typowe dla GNU gzip.

       -k --keep
              Zatrzymuje (nie kasuje) pliki wejściowe przy kompresji lub dekompresji.

       -s --small
              Redukuje   użycie   pamięci  na  kompresję,  dekompresję  i  testowanie.  Pliki  są
              dekompresowane i testowane przy użyciu zmodyfikowanego algorytmu, który  potrzebuje
              tylko  2,5 bajta na blok bajtów. Oznacza to, że każdy plik może być zdekompresowany
              przy użyciu około 2300 k pamięci, jednak przy szybkości o  około  połowę  mniejszej
              niż normalnie.

              Podczas  kompresji -s wybiera bloki wielkości 200 k, których limity pamięci wynoszą
              mniej więcej tyle samo, w zamian za jakość kompresji. W skrócie, jeśli komputer  ma
              mało  pamięci  (8  megabajtów  lub  mniej),  należy używać opcji -s do wszystkiego.
              Zobacz ZARZĄDZANIE PAMIĘCIĄ poniżej.

       -q --quiet
              Wyłącza  wszystkie  nieistotne  komunikaty  ostrzegawcze.    Nie   są   eliminowane
              komunikaty dotyczące błędów wejścia/wyjścia i innych zdarzeń krytycznych.

       -v --verbose
              Tryb  szczegółowy  --  pokazuje  stopień  kompresji  dla każdego pliku. Następne -v
              zwiększają stopień szczegółowości, powodując wyświetlanie dużej ilości  informacji,
              przydatnych głównie przy diagnostyce.

       -h, --help
              Wyświetla krótki komunikat pomocy.

       -L --license -V --version
              Wyświetla wersję programu i warunki licencji.

       -1 (lub --fast) do -9 (lub --best)
              Ustawia  wielkość  bloku podczas kompresji na 100 k, 200 k... 900 k. Nie ma żadnego
              znaczenia przy dekompresji. Zobacz ZARZĄDZANIE PAMIĘCIĄ poniżej.  Aliasy  --fast  i
              --best  zostały  dodane  głównie  dla  zgodności z GNU gzip. W szczególności --fast
              niczego  znacząco  nie  przyspiesza.  Natomiast  --best  zaledwie  powoduje   wybór
              zachowania domyślnego.

       --     Traktuje  wszystkie  następujące  po  nim  argumenty jako nazwy plików, nawet jeśli
              zaczynają się one od łącznika.  Możesz  więc  kompresować  i  dekompresować  pliki,
              których nazwa zaczyna się od łącznika, na przykład: bzip2 -- -mój_plik.

       --repetitive-fast --repetitive-best
              Te  parametry nie mają znaczenia w wersjach 0.9.5 i wyższych. Umożliwiały one pewną
              infantylną  kontrolę  nad  zachowaniem  algorytmu  sortującego  we   wcześniejszych
              wersjach,  co  było  czasami  użyteczne.  Wersje  0.9.5  i  wyższe mają usprawniony
              algorytm, który powoduje bezużyteczność tej funkcji.

ZARZĄDZANIE PAMIĘCIĄ

       bzip2 kompresuje duże pliki w blokach. Rozmiar bloku ma wpływ zarówno na stopień osiąganej
       kompresji,  jak  i na ilość pamięci potrzebnej do kompresji i dekompresji. Parametry od -1
       do -9 wybierają  rozmiar  bloku  odpowiednio  od  100.000  bajtów  aż  do  900.000  bajtów
       (standardowo).  W czasie dekompresji rozmiar bloku użytego do kompresji jest odczytywany z
       nagłówka pliku skompresowanego, następnie bunzip2 sam zajmuje odpowiednią  do  dekompresji
       ilość  pamięci.  Ponieważ  rozmiar  bloków  jest  przetrzymywany  w  pliku skompresowanym,
       parametry od -1 do -9 nie mają przy dekompresji żadnego znaczenia.

       Wymagania kompresji i dekompresji (w bajtach) można oszacować następująco:

              Kompresja:   400 k + (8 * rozmiar bloku)

              Dekompresja:  100 k + (4 * rozmiar bloku) lub
                             100 k + (2,5 * rozmiar bloku)

       Większe bloki dają duże zmniejszenie zwrotów marginalnych. Większość kompresji pochodzi  z
       pierwszych stu lub dwustu kilobajtów rozmiaru bloku.  Warto o tym pamiętać, używając bzip2
       na wolnych komputerach.  Warto  również  podkreślić,  że  rozmiar  pamięci  potrzebnej  do
       dekompresji jest wybierany poprzez ustawienie odpowiedniej wielkości bloku przy kompresji.

       Dla  plików  skompresowanych  standardowym  blokiem wielkości 900 k bunzip2 będzie wymagał
       około 3700 kilobajtów do dekompresji. Aby umożliwić dekompresję na komputerze  wyposażonym
       jedynie w 4 megabajty pamięci, bunzip2 ma opcję, która może zmniejszyć wymagania prawie do
       połowy, tzn. około 2300 kilobajtów. Prędkość dekompresji jest również bardzo  zmniejszona,
       więc należy używać tej opcji tylko wtedy, kiedy jest to konieczne. Tym parametrem jest -s.

       Generalnie  należy próbować i używać największych rozmiarów bloków, jeśli ilość pamięci na
       to pozwala. Prędkość kompresji i dekompresji w zasadzie nie zależy  od  wielkości  użytego
       bloku.

       Inna ważna rzecz dotyczy plików, które mieszczą się w pojedynczym bloku - czyli większości
       plików, na które się można natknąć, używając dużych  bloków.   Rozmiar  realny  zabieranej
       pamięci  jest  proporcjonalny do wielkości pliku, ponieważ plik jest mniejszy niż blok. Na
       przykład kompresja pliku o wielkości 20.000 bajtów z parametrem -9 wymusi  na  kompresorze
       odnalezienie  7600 k pamięci, ale zajęcie tylko 400 k + 20000 * 8 = 560 kilobajtów z tego.
       Podobnie, dekompresor odnajdzie 3700 k,  ale  zajmie  tylko  100 k  +  20000  *  4  =  180
       kilobajtów.

       Oto  tabela,  która  podsumowuje  maksymalne  użycie pamięci dla różnych rozmiarów bloków.
       Podano  też  całkowity  rozmiar  skompresowanych  14  plików  tekstowych  ("Calgary   Text
       Compression  Corpus")  zajmujących razem 3.141.622 bajtów. Ta kolumna daje pewne pojęcie o
       tym, jaki wpływ na kompresję ma wielkość bloków.  Wartości  te  zaniżają  jednak  korzyści
       wynikające  z  użycia  większych  bloków  dla  większych  plików,  ponieważ  "Corpus" jest
       zdominowany przez mniejsze pliki.

                    Użycie       Użycie        Użycie         Rozmiar
          Parametr kompresji   dekompresji   dekompresji -s    "Corpusu"

            -1      1200k         500k          350k          914704
            -2      2000k         900k          600k          877703
            -3      2800k         1300k         850k          860338
            -4      3600k         1700k        1100k          846899
            -5      4400k         2100k        1350k          845160
            -6      5200k         2500k        1600k          838626
            -7      6100k         2900k        1850k          834096
            -8      6800k         3300k        2100k          828642
            -9      7600k         3700k        2350k          828642

ODZYSKIWANIE DANYCH ZE ZNISZCZONYCH PLIKÓW BZIP2

       bzip2 kompresuje pliki w blokach, zazwyczaj 900-kilbajtowych. Każdy blok jest przetwarzany
       niezależnie.  Jeśli  błędy transmisji lub nośnika uszkodzą wieloblokowy plik .bz2, możliwe
       jest odtworzenie danych zawartych w niezniszczonych blokach pliku.

       Skompresowana reprezentacja każdego bloku jest oznaczona przez  48-bitowy  wzorzec,  który
       umożliwia  znajdowanie  granic  bloków  z  rozsądną  pewnością. Każdy blok ma również swój
       32-bitowy CRC, więc bloki uszkodzone mogą być łatwo odróżnione od poprawnych.

       bzip2recover jest oddzielnym  programem,  którego  zadaniem  jest  poszukiwanie  bloków  w
       plikach  .bz2  i  zapisywanie  ich  do własnego pliku .bz2. Można potem użyć bzip2 -t, aby
       sprawdzić spójność wyjściowych plików i zdekompresować te, które nie są uszkodzone.

       bzip2recover pobiera pojedynczy argument - nazwę uszkodzonego pliku, i tworzy pewną liczbę
       plików   "rec0001plik.bz2",  "rec0002plik.bz2"  itd.,  przetrzymujących  odzyskane  bloki.
       Wyjściowe nazwy plików są tworzone tak, by łatwo było potem używać  ich  razem  za  pomocą
       gwiazdek  -  na  przykład  "bzip2  -dc  rec*plik.bz2 > odzyskany_plik" przetworzy pliki we
       właściwej kolejności.

       bzip2recover powinien być używany najczęściej z dużymi plikami .bz2, jako iż  właśnie  one
       zawierają  najczęściej  dużo  bloków.  Jest  czystym  bezsensem  używać  go na uszkodzonym
       jednoblokowym  pliku,  ponieważ  uszkodzony  blok  nie  może   być   odzyskany.   W   celu
       zminimalizowania jakichkolwiek możliwych strat danych poprzez nośnik lub transmisję należy
       zastanowić się nad użyciem mniejszych bloków.

UWAGI DOTYCZĄCE WYDAJNOŚCI

       Etap sortujący kompresji gromadzi podobne ciągi znaków w pliku. Przez to pliki zawierające
       bardzo długie ciągi powtarzających się symboli, jak "aabaabaabaab..." (powtórzone kilkaset
       razy), mogą być kompresowane wolniej niż normalnie. Wersje 0.9.5 i  wyższe  zachowują  się
       dużo  lepiej  w  tej  sytuacji  niż  wersje poprzednie. Różnica stopnia kompresji pomiędzy
       najgorszym a najlepszym przypadkiem kompresji wynosi około 10:1. Dla wcześniejszych wersji
       było  to  nawet  około  100:1.  Aby  monitorować  postępy  bardzo  szczegółowo, można użyć
       parametru -vvvv.

       Szybkość dekompresji nie jest zmieniana przez te zjawiska.

       bzip2 zazwyczaj rezerwuje kilka megabajtów pamięci do działania, a potem wykorzystuje ją w
       dość przypadkowy sposób. Oznacza to, że szybkość zarówno kompresji, jak i dekompresji jest
       w dużej części zależna od szybkości, z jaką komputer użytkownika może  obsłużyć  chybienia
       bufora  podręcznego.  Z  tego  powodu wprowadzone zostały małe zmiany kodu, aby zmniejszyć
       współczynnik  chybień,  które  dały  nieproporcjonalnie  duży  wzrost  osiągnięć.    bzip2
       prawdopodobnie   będzie   działał  najlepiej  na  komputerach  z  bardzo  dużymi  buforami
       podręcznymi.

ZASTRZEŻENIA

       Wiadomości o błędach wejścia/wyjścia nie są aż tak pomocne, jak mogłyby być.  bzip2  stara
       się  wykryć  błąd  wejścia/wyjścia  i wyjść "czysto", ale szczegóły tego, jaki to problem,
       mogą być czasami bardzo mylące.

       Ta strona podręcznika odnosi się do wersji  1.0.6  programu  bzip2.   Skompresowane  pliki
       utworzone  przez  tę wersję są kompatybilne zarówno w przód, jak i wstecznie z poprzednimi
       publicznymi wydaniami, wersjami 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 i wyższymi,  ale
       z  jednym wyjątkiem: 0.9.0 i wyższe potrafią poprawnie dekompresować wiele skompresowanych
       plików złączonych w jeden. 0.1pl2 nie  potrafi  tego;  zatrzyma  się  już  po  dekompresji
       pierwszego pliku w strumieniu.

       bzip2recover  w  wersjach  niższych  od  1.0.2  używał  32-bitowych liczb do reprezentacji
       pozycji bitu w skompresowanym pliku, więc  nie  mógł  przetwarzać  skompresowanych  plików
       dłuższych  niż  512  megabajtów.  Wersja  1.0.2  i  wyższe  używają  64-bitowych  liczb na
       niektórych obsługujących je platformach (zgodne z GNU oraz Windows).  Aby  sprawdzić,  czy
       bzip2recover  został  zbudowany  z  takim  ograniczeniem,  należy uruchomić go bez żadnych
       argumentów. Zawsze istnieje  możliwość  zbudowania  własnej  wersji  nieposiadającej  tego
       ograniczenia  -  należy w tym celu skompilować program ze zmienną MaybeUInt64 zdefiniowaną
       jako 64-bitowa liczba całkowita.

AUTOR

       Julian Seward, jseward@acm.org.

       http://www.bzip.org

       Idee zawarte w bzip2 są zasługą (przynajmniej) następujących osób: Michael Burrows i David
       Wheeler  (transformacja  sortująca  bloki),  David  Wheeler  (znów, koder Huffmana), Peter
       Fenwick (struktura kodowania modelu w oryginalnym bzip2 i wiele udoskonaleń) oraz Alistair
       Moffar,  Radford  Neal  i  Ian  Witten (arytmetyczny koder w oryginalnym bzip2). Jestem im
       bardzo wdzięczny za ich pomoc, wsparcie i porady. Na  stronie  podręcznika  w  dystrybucji
       źródłowej  znajdują  się  odsyłacze  do źródeł dokumentacji. Christian von Roques zachęcił
       mnie do wymyślenia szybszego algorytmu sortującego po to, by przyspieszyć kompresję.  Bela
       Lubkin  zachęciła  mnie  do polepszenia wyników kompresji w najgorszych przypadkach. Donna
       Robinson przekonwertowała dokumentację do formatu XML. Skrypty bz* są oparte o  skrypty  z
       GNU  gzip.  Wiele osób przysłało łatki, pomogło w różnych problemach, pożyczyło komputery,
       udzieliło porad i było ogólnie pomocnych.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Maciej  Wojciechowski
       (PTM) <wojciech@staszic.waw.pl> i Michał Górny <zrchos+manpagespl@gmail.com>.

       Polskie  tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na
       stronie  http://sourceforge.net/projects/manpages-pl/.  Jest  zgodne   z   wersją    1.0.6
       oryginału.

                                                                                         bzip2(1)