Provided by: manpages-cs_0.17.20080113-1_all bug

JMÉNO

       bzip2,  bunzip2  -  komprimuje  a  dekomprimuje soubory, používá metodu
       blokového třídění, v1.0.3
       bzcat - dekomprimuje soubory do standardního výstupu (stdout)
       bzip2recover - získává data z poškozených bzip2 souborů

POUŽITÍ

       bzip2 [ -cdfkqstvzVL123456789 ] [ soubory ...  ]
       bunzip2 [ -fkvsVL ] [ soubory ...  ]
       bzcat [ -s ] [ soubory ...  ]
       bzip2recover soubor

POPIS

       bzip2 komprimuje /zhustí či zmenší/  soubory  užitím  Burrow-Wheelerova
       blokového  třídícího  textového  komprimačního  algoritmu  a Huffmanova
       kódování.  Komprese je všeobecně  mnohem  lepší  než  dosahují  obvyklé
       komprimační  nástroje  založené na LZ77/LZ78 algoritmech (např. gzip) a
       blíží se výkonu PPM rodiny statistických kompresorů.

       Volby příkazového řádku jsou záměrně velmi podobné volbám nástroje  GNU
       gzip, ale nejsou zcela totožné.

       bzip2  očekává  příkaz  doprovázený seznamem jmen souborů na příkazovém
       řádku.  Každý soubor je  nahrazen  komprimovanou  verzí  sebe  sama  se
       jménem "původní_jméno.bz2".

       Každý komprimovaný soubor má stejné datum změny, přístupová práva a je-
       li to možné, také  stejné  vlastníky  odpovídající  původnímu  souboru,
       takže  tyto  vlastnosti  mohou  být  správně obnoveny při dekomprimaci.
       Zacházení se jménem souboru je možno považovat za hloupé na souborových
       systémech,   kterým   chybí  mechanismus  zabezpečení  původního  jména
       souboru, přístupových práv, vlastnictví nebo  datumů  či  mají  závažné
       omezení délky souborového jména (např. MS-DOS).

       bzip2 a bunzip2 standardně nepřepisují již existující soubory. Jestliže
       toto žádáte, užijte volbu -f.

       Pokud není určeno žádné jméno, bzip2  komprimuje  standardní  vstup  do
       standardního výstupu.

       V  tom  případě  bzip2  odmítne zapsat komprimovaný výstup na terminál,
       protože by to bylo  zcela  nesrozumitelné  a  tudíž  zbytečné.   (pozn.
       překl: bzip2 | cat již ano, ale psssst)

       bunzip2 (nebo bzip2 -d) dekomprimuje všechny označené soubory. Soubory,
       které nebyly vytvořeny bzip2 budou rozeznány, vyřazeny a  jejich  jména
       obsažena ve varovném hlášení.

       bzip2   se   pokouší   vyvodit   jméno   dekomprimovaného   souboru   z
       komprimovaného, jak je uvedeno v následujících příkladech.

              soubor.bz2    přejde na   soubor
              soubor.bz                 soubor
              soubor.tbz2               soubor.tar
              soubor.tbz                soubor.tar
              libéVámjméno  přejde na   libéVámjméno.out

       Jestliže souborové jméno nekončí jednou z následujících možností  .bz2,
       .bz,  .tbz2  nebo  .tbz,  bzip2  si postěžuje, že nemůže vyluštit jméno
       původního souboru a použije původní jméno se zakončením .out.

       Stejně  jako  při  kompresi,  chybějící  jméno  způsobí  dekompresi  ze
       standardního  vstupu  do  standardního výstupu. S tím rozdílem, že nyní
       není důvod odmítnout výstup na terminál.

       bunzip2 správně dekomprimuje soubor který je zřetězením  dvou  či  více
       komprimovaných   souborů.   Výsledkem   je   zřetězení   odpovídajících
       nekomprimovaných  souborů.  Testovaní  celistvosti   (-t)   zřetězených
       komprimovaných souborů je také podporováno.

       Můžete také komprimovat a dekomprimovat soubory do standardního výstupu
       volbou -c.  Hromadné soubory mohou být  komprimovány  a  dekomprimovány
       také  tak.   Výsledné výstupy jsou postupně naskládány  do standardního
       výstupu (stdout).  Komprese hromadných souborů tímto  způsobem  vytváří
       proud  obsahující  hromadné komprimované soubory. Takový proud může být
       správně dekomprimován pouze bzip2  version  0.9.0  nebo  vyšší.   Nižší
       verze bzip2 se zastaví po dekomprimování prvního souboru v proudu.

       bzcat   (or   bzip2   -dc)  dekomprimuje  všechny  uvedené  soubory  do
       standardního výstupu.

       bzip2 přečte argumenty z proměnných prostředí BZIP2  a  BZIP,  v  tomto
       pořadí,  a zpracuje je ještě před načtením argumentů z příkazové řádky.
       Tímto způsobem mohou být nastaveny obecné(defaultní) argumenty.

       Komprese je vždy provedena, dokonce i tehdy, je-li získaný komprimovaný
       soubor  nepatrně  větší  než  původní. U souborů menších než zhruba sto
       bajtů je sklon ke zvětšení, neboť  komprimační  mechanismus  má  stálou
       režii kolem 50 bajtů. Náhodná data (uvažován výstup většiny souborových
       kompresorů) jsou kódována v 8.05 bitech na bajt při rozpětí kolem 0.5%.

       Jako  sebekontrolní  mechanismus  bzip2  užívá  32-bit  CRC  k  ověření
       identity dekomprimované verze s originálem.  To chrání proti  deformaci
       komprimovaných  dat  a proti nerozeznaných chybám v bzip2 (doufejme, že
       velmi  nepravděpodobných).  Možnost  nerozpoznaného  poškození  dat  je
       nepatrná,  v  poměru  1  ku čtyřem biliónům na každý zpracovaný soubor.
       Uvědomme si však, že kontrola při dekompresi může  pouze oznámit, že je
       něco špatně. Nemůže pomoci získat původní nekomprimovaná data. Pokud se
       chcete pokusit získat z  poškozených  souborů  data,  použijte  program
       bzip2recover.

       Návratové  hodnoty: 0 správný konec, 1 problémy prostředí (soubor nebyl
       nalezen,  špatné  volby,  I/O  (vstupně/výstupní)  chyby),  2  označuje
       porušení  komprimovaného  souboru,  3 vnitřní logickou chybu (tj. bug),
       jenž způsobila pád bzip2.

VOLBY

       -c --stdout
              Komprimuje nebo dekomprimuje do standardního výstupu

       -d --decompress
              Vyvolá dekompresi.  bzip2, bunzip2 and bzcat jsou ve skutečnosti
              stejné  programy  a  rozhodnutí  jaké  činnosti  budou provedeny
              závisí na užitém jménu. Avšak  volba  parametrem  převyšuje  nad
              tímto mechanismem a vyvolá bzip2 pro dekompresi.

       -z --compress
              Protiklad k -d. Způsobí kompresi bez ohledu na volané jméno.

       -t --test
              Kontroluje celistvost uvedeného souboru, ale nedekomprimuje jej.
              Ve skutečnosti provádí zkušební dekompresi a zahodí výsledek.

       -f --force
              Přepíše výstupní soubory. Normálně bzip2 nepřepisuje  existující
              výstupní  soubory.   Také bzip2 přeruší pevné odkazy k souborům,
              což by jinak neprovedl.

              bzip2  normálně  odmítne  dekomprimovat  soubory,  jimž   nesedí
              "magická hlavička".  Při volbě -f (--force) bzip2 dekomprimuje i
              tyto soubory, čímž napodobuje chování GNU gzip.

       -k --keep
              Zachová (nemaže) vstupní soubory během komprese nebo dekomprese.

       -s --small
              Omezí   velikost  použité  paměti  pro  kompresi,  dekompresi  i
              testování.  Při  dekompresi  a  testování  je  užíván   upravený
              algoritmus,  jenž vyžaduje pouze 2.5 bajtů pro blok. To znamená,
              že jakýkoliv  soubor  může  být  dekomprimován  pouze  s  2300kB
              dostupné paměti, avšak poloviční rychlostí.

              Během  komprese,  znak  -s  vybere  velikost  bloku  200kB, čímž
              příslušně  omezí  velikost  užité   paměti   za   cenu   nižšího
              kompresního poměru. Tedy, má-li váš počítač 8MB či méně operační
              paměti užijte volbu -s. Čtete ŘÍZENÍ PAMĚTI dále.

       -q --quiet
              Potlačí nepodstatná varování. Zprávy  týkající  se  I/O  chyb  a
              jiných kritických událostí nebudou potlačeny.

       -v --verbose
              Upovídaná volba -- ukazuje pro každý zpracovaný soubor kompresní
              poměr.  Dále  volba  -v  zvyšuje  výmluvnost,   chrlí   množství
              informací, které jsou zajímavé zejména pro diagnostické účely.

       -L --license -V --version
              Zobrazí verzi, licenční podmínky.

       -1 (či --fast)  -9 (či --best)
              Nastaví  velikost bloku na 100kB, 200kB .. 900kB pro komprimaci.
              Nemá žádný vliv na dekomprimaci. Čti ŘÍZENÍ PAMĚTI dále.   Volby
              --fast  a  --best  jsou podporovány z důvodu kompatability s GNU
              gzip. Popravdě, --fast toho moc neurychlí.  A --best pouze zvolí
              defaultní chování.

       --     Považuje  všechny  následující  argumenty  za souborová jména, i
              pokud začínají pomlčkou. Takže můžete zacházet také se soubory s
              pomlčkou například  bzip2 -- -méskvělévyspekulovanéjménosouboru.

       --repetitive-fast --repetitive-best
              Tato volba je zbytečná ve verzi  0.9.5  a  vyšších.  Poskytovala
              určité surové ovládání chování třídícího algoritmu v předchozích
              verzích a byla v lecčem  užitečná.  Verze  0.9.5  a  vyšší  mají
              zdokonalený algoritmus, který činí tuto volbu bezvýznamnou.

ŘÍZENÍ PAMĚTI

       bzip2 komprimuje velké soubory v blocích. Velikost bloku má vliv jednak
       na dosažený kompresní poměr a také  na  množství  potřebné  paměti  pro
       kompresi a dekompresi. Volby -1 až -9 určují velikost bloku od 100kB do
       900KB (standard). Při dekompresi je velikost bloku, užitá pro kompresi,
       načtena  z  hlavičky  zkomprimovaného souboru a bunzip2 již sám vyhradí
       dostatek paměti pro dekompresi. Protože velikost bloku  je  uložena  ve
       zkomprimovaném  souboru,  volby  -1  až  -9  jsou  zbytečné a proto při
       dekompresi zůstanou nepovšimnuty.

       Kompresní  a  dekompresní  paměťové  požadavky  v  bajtech  mohou   být
       odhadnuty takto:

            Komprese:    400k + (8 x velikost bloku)
            Dekomprese:  100k + (4 x velikost bloku) nebo
                         100k + (2.5 x velikost bloku)

       Větší  bloky  nepřinášejí  přiměřený  nárůst  komprese,  neboť  většina
       komprese je vytvořena v prvních dvou  či  třech  stech  tisících  bajtů
       bloku  (což  těší  mysl  uživatele  malých strojů). Je také důležité si
       uvědomit, že dekompresní  paměťové  požadavky  jsou  nastaveny  v  době
       komprese výběrem velikosti bloku.

       Pro  soubor komprimovaný s přednastavenou velikostí bloku 900kB bunzip2
       vyžaduje při dekompresi 3700kB  paměti.   Pro  umožnění  dekomprimování
       libovolného  souboru na počítači s pouze 4MB operační paměti má bunzip2
       volbu pro dekompresi užívající  přibližně  poloviční  množství  paměti,
       kolem  2300kB.  Rychlost  je také snížena na polovinu, proto byste tuto
       možnost měli užít pouze, je-li to opravdu nutné. Odpovídající volba  je
       -s.

       Obecně  řečeno,  zkuste a užijte největší možnou velikost bloku v zájmu
       dosažení maximální komprese. Rychlost komprese a  dekomprese  prakticky
       není velikostí bloku ovlivněna.

       Dále  se  podíváme  na  uplatnění  bzip2 na soubory, které se vejdou do
       jednoho bloku.  To je většina souborů, se  kterými  se  setkáte,  pokud
       použijete  velkou  blokovou velikost. Množství skutečně užité paměti je
       přiměřená velikosti takového souboru, protože soubor je menší než blok.
       Například  příkaz  komprimace souboru velkého 20kB s volbou -9 způsobí,
       že kompresor přidělí asi 7600kB paměti, ale použije pouze 400k + (20000
       *  8)  =  560kB.  Podobně  dekompresor přidělí 3700kB ale použije pouze
       100kB + (2000 * 4) = 180KB.

       Následuje tabulka sestávající z hodnot  maximálního  užití  paměti  pro
       různé  velikosti  bloku. Obsahuje také výslednou komprimovanou velikost
       balíku 14  souborů  Calgary  Text  Compression  Corpus  mající  původní
       celkovou  velikost  3,141,622 bajtů. Tento údaj dovolí nahlédnout vlivu
       velikosti bloku na kompresi. Tabulka  směřuje  k  výkladu  výhod  užití
       větších bloků pro větší soubory.

                  Komprese   Dekomprese   Dekomprese   Corpus
           volba   paměť       paměť       -s paměť   velikost

            -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

ZÍSKÁNÍ DAT Z POŠKOZENÝCH SOUBORŮ

       bzip2  komprimuje  soubory v blocích, obyčejně 900kB velkých. S každých
       blokem je nakládáno nezávisle. Jestliže chyba  záznamu  či  přenosu  se
       projeví  v  některém  z  bloků,  .bz2 soubor je poškozen, ale přesto je
       možné získat data z nepoškozených bloků data.

       Komprimované prohlášení každého bloku  je  vymezeno  48-bit  předlohou,
       která  umožňuje  nalezení  hranic  bloku s přijatelnou přesností. Každý
       blok také uchovává vlastní 32-bit CRC a tak poškozené bloky  mohou  být
       rozlišeny od nepoškozených.

       bzip2recover je jednoduchý program, jehož úlohou je hledat bloky v .bz2
       souborech a zapisovat každý blok do vlastního souboru .bz2

       Můžete užít bzip2 -t , jenž  ověřuje  spojitost  výsledných  souborů  a
       dekomprimuje nepoškozené bez zápisu výstupu.

       bzip2recover

       vyžaduje  jednoduše  jméno  poškozeného  souboru  a  vytváří  číslované
       soubory  "rec0001soubor.bz2",   "rec002soubor.bz2"   atd.,   obsahující
       rozbalené  bloky.  Pojmenování  výstupních souborů je navrženo tak, aby
       použití žolíkových znaků  způsobilo  správnou  sestavu  souborů.  Např.
       "bzip2 -dc rec*file.bz2 > získaná_data".

       Použití  bzip2recover  je  spojeno s velkými .bz2 soubory, právě takové
       obsahují  mnoho  bloků.  Je  zřejmě   marné   pokoušet   se   zachránit
       jednoblokový  poškozený soubor, neboť samotný poškozený blok nemůže být
       obnoven. Jestliže usilujete o zmenšení rizika ztráty  dat  zapříčiněnou
       chybou média či přenosu, uvažujte o kompresi s malou velikostí bloku.

POZNÁMKA K VÝKONU

       Třídící  část  komprese  shromažďuje  podobné řetězce v souboru. Z toho
       důvodu může být mnohem pomalejší komprimace souboru, obsahujícího velmi
       dlouhé  nudle  opakujících  se znaků, např. "aabaabaabaab ... ", než je
       obvyklé. Verze 0.9.5 a vyšší toto mnohem  lépe  tráví  nežli  předchozí
       verze.  Poměr mezi nejhorším a průměrných časem komprese je kolem 10:1.
       Předchozí verze statečně dosahovaly poměru 100:1.  Pokud  zadáte  volbu
       -vvvv, můžete sledovat průběh v detailu.  Dekompresní rychlost tím není
       ovlivněna.

       bzip2 obvykle obsadí několik megabajtů paměti a pak je vyplňuje doslova
       náhodně rozmařilým způsobem. To znamená, že výkon komprese i dekomprese
       je silně ovlivněn rychlostí obsluhy cache.  Proto  malé  změny  v  kódu
       přístupu cache by měly způsobit nepoměrně velké zlepšení výkonu.  Výkon
       bzip2 bude pravděpodobně nejlepší na strojích s velmi velkými cache.

VAROVÁNÍ

       I/O chybové zprávy nejsou tak užitečné, jak by  mohly  být.   bzip2  se
       pilně pokouší rozeznat I/O chyby a slušně ukončit činnost, ale detailní
       zprávy o problému jsou občas poněkud matoucí.

       Tato příručka náleží k verzi 1.0.3 bzip2.  Komprimovaná data  vytvořená
       touto   verzí  jsou  zcela  oboustranně  slučitelná  s  předcházejícími
       veřejnými vydáními, verzemi 0.1pl2, 0.9.0 a 0.9.5. Ovšem s  následující
       výjimkou:   0.9.0   a   vyšší   umí   správně  dekomprimovat  zřetězené
       komprimované soubory. 0.1pl2  to  neumí,  a  zastaví  se  po  dokončení
       dekomprese prvního souboru v proudu.

       bzip2recover  verze  starší než 1.0.2 používaly 32-bitovou reprezentaci
       pozice v komprimovaném souboru, a  proto  se  nevypořádaly  se  soubory
       většími  než  512  MB.  Verze  1.0.2  a  novější  používají  64-bitovou
       reprezentaci pozice na systémech, kde je to podporováno (GNU systémy  a
       Windows).  Pro  zjitění,  zda  byl  bzip2recover  skompilován  s  tímto
       omezením, spusťte ho bez  parametrů.  Kdekoliv  si  můžete  skompilovat
       verzi  bez  tohoto  omezení,  pokud nastavíte MaybeUInt64 na nějaký typ
       odpovídající unsigned 64-bit integer.

AUTOR

       Julian Seward, jseward@acm.org.

       http://www.bzip.org

       Myšlenky vložené do bzip2  pocházejí  od  následujících  lidí:  Michael
       Burrows  a  David  Wheeler (bloky řadící přeměna), David Wheeler (opět,
       Huffmanovo kodóvání), Peter Fenwick  (strukturovaný  model  kódování  v
       původním bzip, a řada zdokonalení), Alistair Moffat, Radford Neal a Ian
       Witten (aritmetické kódovaní v původním bzip).   Mnoho  jim  vděčím  za
       jejich  pomoc,  podporu a rady.  Pro odkazy na zdrojovou dokumentaci se
       podívejte do příručky v balíčku zdrojového kódu. Christian  von  Roques
       mě  přivedl  k  hledání rychlejšího třídícího algoritmu, to pro zvýšení
       rychlosti komprese.  Bela  Lubkin  mě  podpořil  při  zdokonalení  toho
       nejhoršího případu kompresního výkonu. Skripty bz* jsou odvozeny od GNU
       gzip. Mnoho lidí poslalo záplaty, pomohlo s problémy v přenositelnosti,
       půjčilo stroje, dalo rady a byli obecně nápomocni.

                                                                      bzip2(1)