Provided by: manpages-pl_20060617-2_all bug

NAZWA

       bzip2, bunzip2 - sortujący bloki kompresor/dekompresor plików, v1.0
       bzcat - dekompresuje pliki na standardowe wyjście
       bzip2recover - odzyskuje dane ze zniszczonych archiwów bzip2

SKŁADNIA

       bzip2 [-cdfkqstvzVL123456789] [nazwy_plikw...]
       bunzip2 [-fkvsVL] [nazwy_plikw...]
       bzcat [-s] [nazwy_plikw...]
       bzip2recover nazwa_pliku

OPIS

       bzip2  kompresuje  pliki używając 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  linii 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  linii  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, tak np. jak MS-DOS.

       bzip2 i bunzip2 standardowo  nie  nadpisują  istniejących  już  plików.
       Jeśli chcesz aby to robiły, musisz użyć parametru -f.

       Jeśli  nie podano żadnej nazwy pliku, bzip2 kompresuje ze standardowego
       wejścia  na   standardowe   wyjście.   Odmiawia   wówczas   wypisywania
       skompresowanego   wyjście   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 kompresja, nie posiadająca żadnych plików,  powoduje  kompresję
       ze standardowego wejścia na standardowe wyjście.

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

       Możesz 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 zdekmpresowaniu 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
       nieznaczniej  większy  od  pliku oryginalnego. Pliki mniejsze niż mniej
       więcej sto bajtów stają się większe, ponieważ  mechanizm  kompresji  ma
       stały  nagłówek  wynoszący około 50 bajtów. Przypadkowe dane (włączając
       wyjście większości kompresorów plików) dą kodowane na mniej więcej 8.05
       bitu na bajt, dając zysk około 0.5%.

       Jako samosprawdzenie dla twojej ochrony bzip2 używa 32-bitowego 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 biliony dla każdego pliku. Uważaj  jednak,  gdyż  sprawdzenie
       jest  dokonywane przed dekompresją, więc dowiesz się tylko tego, że coś
       jest  nie  w  porządku.  Nie  pomoże  ci   to   odzyskać   oryginalnych
       nieskompresowanych  danych.  Możesz  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   nie   znaleziony,   niewłaściwy  parametr,  błąd
       wyjś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 jakie akcje będą wykonane jest
              wykonywana 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(ó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.  Wymusza  również  na
              bzip2 łamanie dowiązań twardych, czego normalnie nie robi.

       -k --keep
              Zatrzymaj   (nie  kasuj)  pliki  wejściowe  przy  kompresji  lub
              dekompresji.

       -s --small
              Zredukuj 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  bajtu  na  blok  bajtów.
              Oznacza  to,  że każdy plik może być zdekompresowany przy użyciu
              około  2300k  pamięci,  jednak  tracąc  około  połowę  normalnej
              szybkości.

              Podczas  kompresji,  -s  wybiera  bloki  wielkości 200k, których
              limity pamięci wynoszą mniej  więcej  tyle  samo,  w  zamian  za
              jakość kompresji. W skrócie, jeśli twój komputer ma mało pamięci
              (8 megabajtów lub mniej), używaj 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  gadatliwy -- pokazuje stopień kompresji dla każdego pliku.
              Następne   -v   zwiększają   stopień   gadatliwości,   powodując
              wyświetlanie  dużej  ilości informacji, przydatnych głównie przy
              diagnostyce.

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

       -1 to -9
              Ustawia wielkość bloku na 100 k, 200 k .. 900 k przy  kompresji.
              Nie  ma  żadnego  znaczenia przy dekompresji. Zobacz zarządzanie
              pamięcią poniżej.

       --     Traktuje wszystkie  następujące  po  nim  argumenty  jako  nazwy
              plików,  nawet  jeśli zaczynają się one od myślnika. Możesz więc
              kompresować i dekompresować pliki, których nazwa zaczyna się  od
              myślnika, 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 również 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łówku pliku  skompresowanego  i  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, mogą być wyliczone przez:

              Kompresja :   400k + ( 8 x rozmiar bloku )

              Dekompresja :  100k + ( 4 x rozmiar bloku ) lub
                             100k + ( 2.5 x 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 900k, 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
       zmiejszona, więc używaj tej opcji tylko wtedy, kiedy jest to konieczne.
       Tym parametrem jest -s.

       Generalnie, próbuj i używaj największych rozmiarów bloków, jeśli  ilość
       pamięci  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 pojedyńczym bloku
       --  oznacza  to większość plików na które się natkniesz używając dużych
       bloków.  Rozmiar  realny  pamięci  zabieranej  jest  proporcjonalny  do
       wielkości  pliku,  jeśli  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 400k + 20000
       * 8 = 560 kilobajtów z tego. Podobnie, dekompresor odnajdzie 3700k, ale
       zajmie tylko 100k + 20000 * 4 = 180 kilobajtów.

       Tu jest 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 Compressione 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.  Ta tabela uzmysławia również przewagę
       użycia większych bloków dla większych plików,  ponieważ  "Corpus"  jest
       zdominowany przez mniejsze pliki.
                    Użycie       Użycie        Użycie         Corpus
          Parametr kompresji   dekompresji   dekompresji -s    Size

            -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 trzymany osobno. Jeśli błędy transmisji lub nośnika  uszkodzą
       plik  wieloblokowy  .bz2,  możliwe  jest odtworzenie danych zawartych w
       niezniszczonych blokach pliku.

       Każdy blok jest reprezentowany przez 48-bitowy wzorzec, który umożliwia
       znajdowanie  przyporządkowań 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
       odseparowane 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żesz  potem  użyć  bzip2 -t aby sprawdzić spójność wyjściowego
       pliku 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ące odzyskane bloki. Wyjściowe nazwy plików są tak tworzone,
       aby  łatwo  było  potem  używać  ich  razem  za  pomocą  gwiazdek -- na
       przykład, "bzip2 -dc rec*plik.bz2 > odzyskany_plik" -- wylistuje  pliki
       we właściwej kolejności.

       bzip2recover  powinien  być  używany najczęściej z dużymi plikami .bz2,
       jako iż one zawierają najczęściej dużo bloków. Jest  czystym  bezsensem
       używać go na uszkodzonym jedno-blokowym pliku, ponieważ uszkodzony blok
       nie  może  być  odzyskany.  Jeśli  chcesz  zminimalizować  jakiekolwiek
       możliwe   straty  danych  poprzez  nośnik  lub  transmisję,  powinieneś
       zastanowić się nad użyciem mniejszych bloków.

OPISY WYNIKÓW

       Etap sortujący kompresji łączy razem  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 i najlepszym przypadkiem kompresji wynosi
       około 10:1. Dla wcześniejszych wersji było to nawet około 100:1.  Jeśli
       chcesz,  możesz  użyć  parametru  -vvvv  aby monitorować postępy bardzo
       szczegółowo.

       Prędkość dekompresji nie jest zmieniana przez to zjawisko.

       bzip2 zazwyczaj rezerwuje kilka megabajtów pamięci do działania a potem
       wykorzystuje  ją w sposób zupełnie przypadkowy.  Oznacza to, że zarówno
       prędkość kompresji jak i dekompresji jest w  dużej  części  zależna  od
       prędkości,   z   jaką   twój   komputer  może  naprawiać  braki  bufora
       podręcznego. Z tego powodu, wprowadzone zostały małe  zmiany  kody  aby
       zmniejszyć straty, które dały nieproporcjonalnie duży wzrost osiągnięć.
       Myślę, że bzip2  będzie  działał  najlepiej  na  komputerach  z  dużymi
       buforami podręcznymi.

ZAKAMARKI

       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  programu  bzip2.
       Skompresowane pliki utworzone przez tę wersję są kompatybilne zarówno z
       w  przód  jak i wstecznie z poprzednimi publicznymi wydaniami, wersjami
       0.1pl2, 0.9.0 i 0.9.5 ale z małymi wyjątkami: 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  używa  32-bitowych  liczb do reprezentacji pozycji bitu w
       skompresowanym pliku, więc nie może przetwarzać skompresowanych  plików
       dłuższych niż 512 megabajtów. Można to łatwo naprawić.

AUTOR

       Julian Seward, jseward@acm.org.

       http://www.muraroa.demon.co.uk http://sourceware.cygnus.com/bzip2

       Idee  zawarte w bzip2 są podzielone (przynajmniej) pomiędzy nastepujący
       ludzi: Michael Burrows i David Wheeler (transformacja sortującą bloki),
       David   Wheeler   (znów,  koder  Huffmana),  Peter  Fenwick  (struktura
       kodowania modelu w oryginalnym bzip2, i wiele udoskonaleń), i  Alistair
       Moffar,  Radford  Neal  i  Ian Witten (arytmetyczny koder w oryginalnym
       bzip2). Jestem im bardzo wdzięczny za ich  pomoc,  wsparcie  i  porady.
       Zobacz  stronę  manuala  w źródłowej dystrybucji po wskaźniki do źródeł
       dokumentacji.  Christian  von  Roques  zachęcił  mnie   do   wymyślenia
       szybszego  algorytmu  sortującego,  po  to żeby przyspieszyć kompresję.
       Bela  Lubkin  zachęciła  mnie  do   polepszenia   najgorszych   wyników
       kompresji.  Wiele  ludzi przysłało łatki, pomogło w różnych problemach,
       pożyczyło komputerów, dało rady i było ogólnie pomocnych.

                                                                      bzip2(1)