Provided by: manpages-cs_4.13-4_all 

JMÉNO
bzip2, bunzip2 - komprimuje a dekomprimuje soubory, používá metodu blokového třídění, v1.0.8
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 ... ]
bzip2 [ -h|--help ]
bunzip2 [ -fkvsVL ] [ soubory ... ]
bunzip2 [ -h|--help ]
bzcat [ -s ] [ soubory ... ]
bzcat [ -h|--help ]
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 přejde na soubor
soubor.tbz2 přejde na soubor.tar
soubor.tbz přejde na 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 2300 kB dostupné paměti, avšak poloviční rychlostí.
Během komprese, znak -s vybere velikost bloku 200 kB, čí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.
-h --help
Print a help message and exit.
-L --license -V --version
Zobrazí verzi, licenční podmínky.
-1 (či --fast) až -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: 400 k + (8 x velikost bloku)
Dekomprese: 100 k + (4 x velikost bloku) nebo
100 k + (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 900 kB 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 7600 kB paměti, ale použije pouze
400 k + (20000 * 8) = 560kB. Podobně dekompresor přidělí 3700 kB ale použije pouze 100 kB + (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ě 900 kB 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í.
This manual page pertains to version 1.0.8 of bzip2. Compressed data created by this version is entirely
forwards and backwards compatible with the previous public releases, versions 0.1pl2, 0.9.0, 0.9.5,
1.0.0, 1.0.1, 1.0.2 and above, but with the following exception: 0.9.0 and above can correctly decompress
multiple concatenated compressed files. 0.1pl2 cannot do this; it will stop after decompressing just the
first file in the stream.
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.
https://sourceware.org/bzip2/
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.
P◈EKLAD
Překlad této příručky do španělštiny vytvořili Karel Dušek <kargee.dusek@seznam.cz> a Petr Sykora
<petrsykora@jabber.tecka.cz>
Tento překlad je bezplatná dokumentace; Přečtěte si GNU General Public License Version 3 nebo novější
ohledně podmínek autorských práv. Neexistuje ŽÁDNÁ ODPOVĚDNOST.
Pokud narazíte na nějaké chyby v překladu této příručky, pošlete e-mail na adresu translation-team-
cs@lists.sourceforge.net.
bzip2(1)