Provided by: manpages-pl_4.27.0-1_all bug

NAZWA

       bzip2, bunzip2 - sortujący bloki kompresor/dekompresor plików, v1.0.8
       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
              Zachowuje (nie usuwa) 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 komunikat pomocy i wychodzi.

       -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.8 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.

       https://sourceware.org/bzip2/

       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

       Tłumaczenie  niniejszej  strony podręcznika: Maciej Wojciechowski <wojciech@staszic.waw.pl>, Michał Górny
       <zrchos+manpagespl@gmail.com> 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   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.

                                                                                                        bzip2(1)