Provided by: manpages-cs_0.18.20090209-3_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   Velikost
                      volba   paměť       paměť       -s paměť   korpusu

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

NÁSTRAHY

       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)