Provided by:
manpages-cs_0.18.20090209-3_all 
JM'ENO
bzip2, bunzip2 - komprimuje a dekomprimuje soubory, pouiva metodu
blokoveho tidni, v1.0.3
bzcat - dekomprimuje soubory do standardniho vystupu (stdout)
bzip2recover - ziskava data z pokozenych bzip2 soubor
POUIT'I
bzip2 [ -cdfkqstvzVL123456789 ] [ soubory ... ]
bunzip2 [ -fkvsVL ] [ soubory ... ]
bzcat [ -s ] [ soubory ... ]
bzip2recover soubor
POPIS
bzip2 komprimuje /zhusti i zmeni/ soubory uitim Burrow-Wheelerova
blokoveho tidiciho textoveho komprimaniho algoritmu a Huffmanova
kodovani. Komprese je veobecn mnohem lepi ne dosahuji obvykle
komprimani nastroje zaloene na LZ77/LZ78 algoritmech (nap. gzip) a blii
se vykonu PPM rodiny statistickych kompresor.
Volby pikazoveho adku jsou zamrn velmi podobne volbam nastroje GNU
gzip, ale nejsou zcela totone.
bzip2 oekava pikaz doprovazeny seznamem jmen soubor na pikazovem adku.
Kady soubor je nahrazen komprimovanou verzi sebe sama se jmenem
"pvodni_jmeno.bz2". Kady komprimovany soubor ma stejne datum zmny,
pistupova prava a je-li to mone, take stejne vlastniky odpovidajici
pvodnimu souboru, take tyto vlastnosti mohou byt spravn obnoveny pi
dekomprimaci. Zachazeni se jmenem souboru je mono povaovat za hloupe
na souborovych systemech, kterym chybi mechanismus zabezpeeni pvodniho
jmena souboru, pistupovych prav, vlastnictvi nebo datum i maji zavane
omezeni delky souboroveho jmena (nap. MS-DOS).
bzip2 a bunzip2 standardn nepepisuji ji existujici soubory. Jestlie
toto adate, uijte volbu -f.
Pokud neni ureno adne jmeno, bzip2 komprimuje standardni vstup do
standardniho vystupu. V tom pipad bzip2 odmitne zapsat komprimovany
vystup na terminal, protoe by to bylo zcela nesrozumitelne a tudi
zbytene. (pozn. pekl: bzip2 | cat ji ano, ale psssst)
bunzip2 (nebo bzip2 -d) dekomprimuje vechny oznaene soubory. Soubory,
ktere nebyly vytvoeny bzip2 budou rozeznany, vyazeny a jejich jmena
obsaena ve varovnem hlaeni. bzip2 se pokoui vyvodit jmeno
dekomprimovaneho souboru z komprimovaneho, jak je uvedeno v
nasledujicich pikladech.
soubor.bz2 pejde na soubor
soubor.bz soubor
soubor.tbz2 soubor.tar
soubor.tbz soubor.tar
libeVamjmeno pejde na libeVamjmeno.out
Jestlie souborove jmeno nekoni jednou z nasledujicich monosti .bz2,
.bz, .tbz2 nebo .tbz, bzip2 si postuje, e neme vylutit jmeno pvodniho
souboru a pouije pvodni jmeno se zakonenim .out .
Stejn jako pi kompresi, chybjici jmeno zpsobi dekompresi ze
standardniho vstupu do standardniho vystupu. S tim rozdilem, e nyni
neni dvod odmitnout vystup na terminal.
bunzip2 spravn dekomprimuje soubor ktery je zetzenim dvou i vice
komprimovanych soubor. Vysledkem je zetzeni odpovidajicich
nekomprimovanych soubor. Testovani celistvosti (-t) zetzenych
komprimovanych soubor je take podporovano.
Mete take komprimovat a dekomprimovat soubory do standardniho vystupu
volbou -c. Hromadne soubory mohou byt komprimovany a dekomprimovany
take tak. Vysledne vystupy jsou postupn naskladany do standardniho
vystupu (stdout). Komprese hromadnych soubor timto zpsobem vytvai
proud obsahujici hromadne komprimovane soubory. Takovy proud me byt
spravn dekomprimovan pouze bzip2 version 0.9.0 nebo vyi. Nii verze
bzip2 se zastavi po dekomprimovani prvniho souboru v proudu.
bzcat (or bzip2 -dc) dekomprimuje vechny uvedene soubory do
standardniho vystupu.
bzip2 pete argumenty z promnnych prostedi BZIP2 a BZIP, v tomto poadi,
a zpracuje je jet ped natenim argument z pikazove adky. Timto zpsobem
mohou byt nastaveny obecne(defaultni) argumenty.
Komprese je vdy provedena, dokonce i tehdy, je-li ziskany komprimovany
soubor nepatrn vti ne pvodni. U soubor menich ne zhruba sto bajt je
sklon ke zvteni, nebo komprimani mechanismus ma stalou reii kolem 50
bajt. Nahodna data (uvaovan vystup vtiny souborovych kompresor) jsou
kodovana v 8.05 bitech na bajt pi rozpti kolem 0.5%.
Jako sebekontrolni mechanismus bzip2 uiva 32-bit CRC k oveni identity
dekomprimovane verze s originalem. To chrani proti deformaci
komprimovanych dat a proti nerozeznanych chybam v bzip2 (doufejme, e
velmi nepravdpodobnych). Monost nerozpoznaneho pokozeni dat je
nepatrna, v pomru 1 ku tyem bilionm na kady zpracovany soubor. Uvdomme
si vak, e kontrola pi dekompresi me pouze oznamit, e je nco patn. Neme
pomoci ziskat pvodni nekomprimovana data. Pokud se chcete pokusit
ziskat z pokozenych soubor data, pouijte program bzip2recover .
Navratove hodnoty: 0 spravny konec, 1 problemy prostedi (soubor nebyl
nalezen, patne volby, I/O (vstupn/vystupni) chyby), 2 oznauje porueni
komprimovaneho souboru, 3 vnitni logickou chybu (tj. bug), jen zpsobila
pad bzip2 .
VOLBY
-c --stdout
Komprimuje nebo dekomprimuje do standardniho vystupu
-d --decompress
Vyvola dekompresi. bzip2, bunzip2 and bzcat jsou ve skutenosti
stejne programy a rozhodnuti jake innosti budou provedeny zavisi
na uitem jmenu. Avak volba parametrem pevyuje nad timto
mechanismem a vyvola bzip2 pro dekompresi.
-z --compress
Protiklad k -d. Zpsobi kompresi bez ohledu na volane jmeno.
-t --test
Kontroluje celistvost uvedeneho souboru, ale nedekomprimuje jej.
Ve skutenosti provadi zkuebni dekompresi a zahodi vysledek.
-f --force
Pepie vystupni soubory. Normaln bzip2 nepepisuje existujici
vystupni soubory. Take bzip2 perui pevne odkazy k souborm, co
by jinak neprovedl.
bzip2 normaln odmitne dekomprimovat soubory, jim nesedi "magicka
hlavika". Pi volb -f (--force) bzip2 dekomprimuje i tyto
soubory, im napodobuje chovani GNU gzip.
-k --keep
Zachova (nemae) vstupni soubory bhem komprese nebo dekomprese.
-s --small
Omezi velikost pouite pamti pro kompresi, dekompresi i
testovani. Pi dekompresi a testovani je uivan upraveny
algoritmus, jen vyaduje pouze 2.5 bajt pro blok. To znamena, e
jakykoliv soubor me byt dekomprimovan pouze s 2300kB dostupne
pamti, avak polovini rychlosti.
Bhem komprese, znak -s vybere velikost bloku 200kB, im pislun
omezi velikost uite pamti za cenu niiho kompresniho pomru. Tedy,
ma-li va poita 8MB i men operani pamti uijte volbu -s. tete
IZENI PAMTI dale.
-q --quiet
Potlai nepodstatna varovani. Zpravy tykajici se I/O chyb a
jinych kritickych udalosti nebudou potlaeny.
-v --verbose
Upovidana volba -- ukazuje pro kady zpracovany soubor kompresni
pomr. Dale volba -v zvyuje vymluvnost, chrli mnostvi informaci,
ktere jsou zajimave zejmena pro diagnosticke uely.
-L --license -V --version
Zobrazi verzi, licenni podminky.
-1 (i --fast) a -9 (i --best)
Nastavi velikost bloku na 100kB, 200kB .. 900kB pro komprimaci.
Nema adny vliv na dekomprimaci. ti IZENI PAMTI dale. Volby
--fast a --best jsou podporovany z dvodu kompatability s GNU
gzip. Popravd, --fast toho moc neurychli. A --best pouze zvoli
defaultni chovani.
-- Povauje vechny nasledujici argumenty za souborova jmena, i pokud
zainaji pomlkou. Take mete zachazet take se soubory s pomlkou
napiklad bzip2 -- -meskvlevyspekulovanejmenosouboru.
--repetitive-fast --repetitive-best
Tato volba je zbytena ve verzi 0.9.5 a vyich. Poskytovala urite
surove ovladani chovani tidiciho algoritmu v pedchozich verzich
a byla v lecem uitena. Verze 0.9.5 a vyi maji zdokonaleny
algoritmus, ktery ini tuto volbu bezvyznamnou.
'IZEN'I PAMTI
bzip2 komprimuje velke soubory v blocich. Velikost bloku ma vliv jednak
na dosaeny kompresni pomr a take na mnostvi potebne pamti pro kompresi
a dekompresi. Volby -1 a -9 uruji velikost bloku od 100kB do 900KB
(standard). Pi dekompresi je velikost bloku, uita pro kompresi, natena
z hlaviky zkomprimovaneho souboru a bunzip2 ji sam vyhradi dostatek
pamti pro dekompresi. Protoe velikost bloku je uloena ve zkomprimovanem
souboru, volby -1 a -9 jsou zbytene a proto pi dekompresi zstanou
nepovimnuty.
Kompresni a dekompresni pamove poadavky v bajtech mohou byt odhadnuty
takto:
Komprese: 400k + (8 x velikost bloku)
Dekomprese: 100k + (4 x velikost bloku) nebo 100k + (2.5 x
velikost bloku)
Vti bloky nepinaeji pimeny narst komprese, nebo vtina komprese je
vytvoena v prvnich dvou i tech stech tisicich bajt bloku (co ti mysl
uivatele malych stroj). Je take dleite si uvdomit, e dekompresni pamove
poadavky jsou nastaveny v dob komprese vybrem velikosti bloku.
Pro soubor komprimovany s pednastavenou velikosti bloku 900kB bunzip2
vyaduje pi dekompresi 3700kB pamti. Pro umonni dekomprimovani
libovolneho souboru na poitai s pouze 4MB operani pamti ma bunzip2
volbu pro dekompresi uivajici piblin polovini mnostvi pamti, kolem
2300kB. Rychlost je take sniena na polovinu, proto byste tuto monost
mli uit pouze, je-li to opravdu nutne. Odpovidajici volba je -s.
Obecn eeno, zkuste a uijte nejvti monou velikost bloku v zajmu dosaeni
maximalni komprese. Rychlost komprese a dekomprese prakticky neni
velikosti bloku ovlivnna.
Dale se podivame na uplatnni bzip2 na soubory, ktere se vejdou do
jednoho bloku. To je vtina soubor, se kterymi se setkate, pokud
pouijete velkou blokovou velikost. Mnostvi skuten uite pamti je pimena
velikosti takoveho souboru, protoe soubor je meni ne blok. Napiklad
pikaz komprimace souboru velkeho 20kB s volbou -9 zpsobi, e kompresor
pidli asi 7600kB pamti, ale pouije pouze 400k + (20000 * 8) = 560kB.
Podobn dekompresor pidli 3700kB ale pouije pouze 100kB + (2000 * 4) =
180KB.
Nasleduje tabulka sestavajici z hodnot maximalniho uiti pamti pro rzne
velikosti bloku. Obsahuje take vyslednou komprimovanou velikost baliku
14 soubor Calgary Text Compression Corpus majici pvodni celkovou
velikost 3,141,622 bajt. Tento udaj dovoli nahlednout vlivu velikosti
bloku na kompresi. Tabulka smuje k vykladu vyhod uiti vtich blok pro
vti 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'ISK'AN'I DAT Z POKOZEN'YCH SOUBOR
bzip2 komprimuje soubory v blocich, obyejn 900kB velkych. S kadych
blokem je nakladano nezavisle. Jestlie chyba zaznamu i penosu se
projevi v nkterem z blok, .bz2 soubor je pokozen, ale pesto je mone
ziskat data z nepokozenych blok data.
Komprimovane prohlaeni kadeho bloku je vymezeno 48-bit pedlohou, ktera
umouje nalezeni hranic bloku s pijatelnou pesnosti. Kady blok take
uchovava vlastni 32-bit CRC a tak pokozene bloky mohou byt rozlieny od
nepokozenych.
bzip2recover je jednoduchy program, jeho ulohou je hledat bloky v .bz2
souborech a zapisovat kady blok do vlastniho souboru .bz2 Mete uit
bzip2 -t , jen ovuje spojitost vyslednych soubor a dekomprimuje
nepokozene bez zapisu vystupu.
bzip2recover vyaduje jednodue jmeno pokozeneho souboru a vytvai
islovane soubory "rec0001soubor.bz2", "rec002soubor.bz2" atd.,
obsahujici rozbalene bloky. Pojmenovani vystupnich soubor je navreno
tak, aby pouiti olikovych znak zpsobilo spravnou sestavu soubor. Nap.
"bzip2 -dc rec*file.bz2 > ziskana_data".
Pouiti bzip2recover je spojeno s velkymi .bz2 soubory, prav takove
obsahuji mnoho blok. Je zejm marne pokouet se zachranit jednoblokovy
pokozeny soubor, nebo samotny pokozeny blok neme byt obnoven. Jestlie
usilujete o zmeneni rizika ztraty dat zapiinnou chybou media i penosu,
uvaujte o kompresi s malou velikosti bloku.
POZN'AMKA K V'YKONU
Tidici ast komprese shromauje podobne etzce v souboru. Z toho dvodu me
byt mnohem pomaleji komprimace souboru, obsahujiciho velmi dlouhe nudle
opakujicich se znak, nap. "aabaabaabaab ... ", ne je obvykle. Verze
0.9.5 a vyi toto mnohem lepe travi neli pedchozi verze. Pomr mezi
nejhorim a prmrnych asem komprese je kolem 10:1. Pedchozi verze staten
dosahovaly pomru 100:1. Pokud zadate volbu -vvvv, mete sledovat prbh v
detailu.
Dekompresni rychlost tim neni ovlivnna.
bzip2 obvykle obsadi nkolik megabajt pamti a pak je vypluje doslova
nahodn rozmailym zpsobem. To znamena, e vykon komprese i dekomprese je
siln ovlivnn rychlosti obsluhy cache. Proto male zmny v kodu pistupu
cache by mly zpsobit nepomrn velke zlepeni vykonu. Vykon bzip2 bude
pravdpodobn nejlepi na strojich s velmi velkymi cache.
N'ASTRAHY
I/O chybove zpravy nejsou tak uitene, jak by mohly byt. bzip2 se piln
pokoui rozeznat I/O chyby a slun ukonit innost, ale detailni zpravy o
problemu jsou obas ponkud matouci.
Tato piruka nalei k verzi 1.0.3 bzip2. Komprimovana data vytvoena touto
verzi jsou zcela oboustrann sluitelna s pedchazejicimi veejnymi
vydanimi, verzemi 0.1pl2, 0.9.0 a 0.9.5. Ovem s nasledujici vyjimkou:
0.9.0 a vyi umi spravn dekomprimovat zetzene komprimovane soubory.
0.1pl2 to neumi, a zastavi se po dokoneni dekomprese prvniho souboru v
proudu.
bzip2recover verze stari ne 1.0.2 pouivaly 32-bitovou reprezentaci
pozice v komprimovanem souboru, a proto se nevypoadaly se soubory vtimi
ne 512 MB. Verze 1.0.2 a novji pouivaji 64-bitovou reprezentaci pozice
na systemech, kde je to podporovano (GNU systemy a Windows). Pro
zjitni, zda byl bzip2recover skompilovan s timto omezenim, spuste ho
bez parametr. Kdekoliv si mete skompilovat verzi bez tohoto omezeni,
pokud nastavite MaybeUInt64 na njaky typ odpovidajici unsigned 64-bit
integer.
AUTOR
Julian Seward, jseward@acm.org.
http://www.bzip.org
Mylenky vloene do bzip2 pochazeji od nasledujicich lidi: Michael
Burrows a David Wheeler (bloky adici pemna), David Wheeler (opt,
Huffmanovo kodovani), Peter Fenwick (strukturovany model kodovani v
pvodnim bzip, a ada zdokonaleni), Alistair Moffat, Radford Neal a Ian
Witten (aritmeticke kodovani v pvodnim bzip). Mnoho jim vdim za jejich
pomoc, podporu a rady. Pro odkazy na zdrojovou dokumentaci se
podivejte do piruky v baliku zdrojoveho kodu. Christian von Roques m
pivedl k hledani rychlejiho tidiciho algoritmu, to pro zvyeni rychlosti
komprese. Bela Lubkin m podpoil pi zdokonaleni toho nejhoriho pipadu
kompresniho vykonu. Skripty bz* jsou odvozeny od GNU gzip. Mnoho lidi
poslalo zaplaty, pomohlo s problemy v penositelnosti, pjilo stroje,
dalo rady a byli obecn napomocni.
bzip2(1)