File: bzip2.1

package info (click to toggle)
manpages-hu 20010119-6
  • links: PTS
  • area: main
  • in suites: buster, stretch
  • size: 2,272 kB
  • ctags: 2
  • sloc: makefile: 56; lisp: 56
file content (442 lines) | stat: -rw-r--r-- 15,409 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
.PU
.TH bzip2 1
.SH NV
bzip2, bunzip2 \- 'block-sorting' eljrssal dolgoz tmrtprogram, v0.9.0
.br
bzcat \- stdout-ra csomagolja ki az llomnyt
.br
bzip2recover \- srlt bzip2 adatait prblja megmenteni

.SH TTEKINTS
.ll +8
.B bzip2
.RB [ " \-cdfkstvzVL123456789 " ]
[
.I "fjlnevek \&..."
]
.ll -8
.br
.B bunzip2
.RB [ " \-fkvsVL " ]
[
.I "fjlnevek \&..."
]
.br
.B bzcat
.RB [ " \-s " ]
[
.I "fjlnevek \&..."
]
.br
.B bzip2recover
.I "fjlnv"

.SH LERS
A
.I bzip2
Burrows-Wheeler-fle blokkrendez algoritmussal s Huffman-kdolssal 
tmrt szveges llomnyokat.
A tmrts mrtke ltalban lnyegesen jobb, mint ami a
legtbb hagyomnyos LZ77/LZ78 alap tmrtvel elrhet,
s megkzelti a statisztikus mdszerrel dolgoz PPM csald
teljestmnyt.

A parancssori opcik szndkosan igen hasonlak a
.I GNU Gzip
opciihoz, de nem azonosak azokkal.

A
.I bzip2
llomnynevek listjt vrja a hozzjuk tartoz parancssori
kapcsolkkal. Minden fjlt azok "eredeti_nv.bz2" nev
tmrtett vltozatra cserl ki.
A tmrtett fjlokhoz tartoz dtumok s jogok az eredetivel
megegyeznek, gy ezek a tulajdonsgok kicsomagolskor helyesen
llthatk vissza.
A fjlnevek kezelse egyszer abban az rtelemben, hogy nincs
lehetsg az eredeti fjlnevek, jogok s dtumok megrzsre
az ezeket nem tmogat, vagy a MS-DOS-hoz hasonlan szigoran
kttt hosszsg neveket kezel fjlrendszerekben.

A
.I bzip2
s a
.I bunzip2
alaprtelmezs szerint nem rnak fell mr ltez fjlokat;
erre a \-f kapcsol hasznlatval lehet rvenni ket.

Fjlnevek hinyban a
.I bzip2
a szabvnyos bemenetrl a szabvnyos kimenetre dolgozik.
Ebben az esetben azonban a
.I bzip2
nem fogja a tmrtett adatokat a terminlra rni, mert az
feldolgozhatatlan, gy rtelmetlen volna.

A
.I bunzip2
(vagy a
.I bzip2 \-d
) kicsomagolja s visszalltja a felsorolt fjlok kzl
a ".bz2"-re vgzd nevket.
A nem erre vgzd nev fjlokat nem veszi figyelembe.
Ismtelten: ha nem adunk meg fjlnevet, a tmrts standard
inputrl szabvnyos kimenetre trtnik.

A
.I bunzip2
helyesen fogja kicsomagolni azokat a fjlokat, melyek kt
vagy tbb tmrtett fjl sszevonsval (sszemsolsval)
keletkeznek. Az eredmny a kicsomagolt fjlok egybemsolt
lncolata lesz. A fjlok srtetlensgnek ellenrzse (\-t)
az sszelncolt archvumokon is mkdik.

A szabvnyos kimenetre is lehet be- illetve kicsomagolni fjlokat
a \-c kapcsol megadsval. Egyszerre tbb fjllal is lehet gy
dolgozni. A keletkez kimenetek sorban a szabvnyos kimenetre
kerlnek. Tbb fjl ily mdon trtn tmrtse egy olyan
adatfolyamot eredmnyez, melyben az egyes fjlok tmrtve
szerepelnek. Egy ilyen llomny helyesen csak a
.I bzip2
0.9.0-s vagy jabb verzijval csomagolhat ki. A
.I bzip2
rgebbi verzii az els fjl kibontsa utn megllnak.

A
.I bzcat
(vagy a
.I bzip2 \-dc
) a megadott fjlokat a szabvnyos kimenetre csomagolja ki.

A tmrts mindig megtrtnik, mg akkor is, ha a tmrtett
fjl esetleg valamivel nagyobb, mint az eredeti. A kb. 100 bjtnl
kisebb fjlok hajlamosak erre, mivel a tmrt mechanizmus maga
is hozzad gy 50 bjtot az archvumhoz.

Az olyan adathalmazra, melyben az egyes elemek elfordulsa vletlenszer
(ilyen a legtbb tmrtprogram kimenete), a kdols kb. 8.05 bit/bjt
arnnyal trtnik, ami megkzeltleg 0.5%-os mretnvekedst eredmnyez.

nellenrzsknt az adatok vdelmre a
.I bzip2
32 bites CRC-ket (ellenrz sszegeket) hasznl, gy biztostva,
hogy a kitmrtett llomny az eredetivel megegyezzen.
Ez egyrszt a tmrtett adatok srlse ellen, msrszt pedig a
.I bzip2
eddig fel nem dertett (s remlhetleg igen valszntlen) hibi
ellen vd.
Annak az eslye, hogy a tmrtett adatban elfordul hiba
szrevtlen marad, igen kicsi, megkzeltleg egy a ngybillihoz
minden egyes tmrtett fjl esetben. Lnyeges azonban, hogy az
ellenrzs kicsomagolskor trtnik, s csak arra hvja fel a
figyelmet, hogy valami nincs rendben, az eredeti adatot
visszalltani nem tudja.
A
.I bzip2recover
-rel lehet megprblni az adatok visszalltst a srlt fjlbl.

Visszatrsi rtkek:
0 ha a program futsa rendesen befejezdtt
1 ha krnyezeti problmba futott (nem tallja a fjlt, rossz kapcsolt
kapott, I/O hiba esetn, stb.)
2 ha a tmrtett fjl hibs
3 ha bels hiba (pl. bug) miatt a
.I bzip2
azonnal felfggesztette futst.

.SH MEMRIAKEZELS
A
.I Bzip2
a nagy fjlokat blokkokban kezeli. A blokkmret meghatrozza mind az
elrhet tmrtsi arnyt, mind pedig a be- s kicsomagolshoz szksges
memria mennyisgt. A \-1 ... \-9 kapcsolk az egyes blokkmreteket
100,000 ... 900,000 bjt rtkekre lltjk. Kibontskor a program az
arhvum fejlcbl olvassa ki a tmrtskor hasznlt blokkmretet, s a
.I bunzip2
ennek megfelelen ppen annyi memrit foglal le magnak, amennyi a
kibontshoz szksges. Mivel a blokkmret a tmrtett fjlban van,
a \-1 ... \-9 kapcsolknak nincs jelentsgk s azokat a program
kibontskor figyelmen kvl hagyja.

A be- s kicsomagols memriaignye bjtban megkzeltleg a

      Tmrts:     400k + ( 7 x blokkmret)

      Kibonts:      100k + ( 4 x blokkmret), vagy
.br
                     100k + ( 2.5 x blokkmret)
kpletekkel becslhet meg,

Nagyobb blokkmret gyorsan cskken mellkes nyeresget ad;
a tmrts jelents rszt a blokkmret els 2-300k-ja adja.
Ezt rdemes fejben tartani a
.I bzip2
kis gpeken trtn hasznlatakor.
Arrl sem szabad megfeledkezni, hogy a kibonts memriaignyt a
tmrtskor vlasztott blokkmret hatrozza meg.

Az alaprtelmezett 900k mret blokkokkal tmrtett fjlok esetben a
.I bunzip2
a kibontshoz kb. 3700k memrit fog hasznlni.
Hogy minden fjl kibonthat legyen mg egy 4 megabjtos gpen is, a
.I bunzip2
lehetv teszi a kibontst kb. feleennyi, megkzeltleg 2300k memria
felhasznlsval is. Ezzel a kibonts sebessge is felezdik, gy csak
akkor rdemes hasznlni ezt a lehetsget, amikor valban szksges.
Az idevonatkoz kapcsol a \-s.

ltalban, ha a rendelkezsre ll memria mennyisge engedi, rdemes
megprblkozni a legnagyobb blokkmret hasznlatval, mivel gy rhet el
a legjobb tmrtsi arny. A tmrts s kibonts sebessgt a blokkmret
gyakorlatilag nem befolysolja.

Msik lnyeges pont azoknak a fjloknak az esete, melyek egyetlen blokkba
belefrnek - nagy blokkmret hasznlatakor ez a legtbb fjlra fennll.
A tnylegesen felhasznlt memria mennyisge a fjl mretvel arnyos,
mivel a fjl kisebb, mint egy blokk. Egy 20,000 bjt hossz fjl \-9
kapcsolval trtn tmrtsekor pldul kb. 6700k memrit foglal le
a tmrtprogram, de csak 400k + 20000 * 7 = 540k-t hasznl belle.
Kibontskor ehhez hasonlan 3700k-t foglal le, de csak
100k + 20000 * 4 = 180k-t hasznl.

A kvetkez tblzat a klnbz blokkmretekhez tartoz maximlis
memriafelhasznlst, valamint a Calgary Szvegtmrts Dokumentci
sszesen 3,141,622 bjtos 14 fjljnak tmrtett mrett tartalmazza.
Ez az oszlop nmi ttekintst ad arrl, hogyan vltozik a tmrts
mrtke a blokkmret fggvnyben. Ezek a szmok nem igazn mutatjk
a nagy blokkmret elnyeit nagyobb fjlokra, mivel a Dokumentciban
a kismret fjlok tlslyban vannak.

             Tmrts    Kibonts    Kibonts    Dokumentci
    Kapcsol mem.haszn.  mem.haszn.   -s -sel        mrete

     -1         1100k       500k        350k         914704
     -2         1800k       900k        600k         877703
     -3         2500k      1300k        850k         860338
     -4         3200k      1700k       1100k         846899
     -5         3900k      2100k       1350k         845160
     -6         4600k      2500k       1600k         838626
     -7         5400k      2900k       1850k         834096
     -8         6000k      3300k       2100k         828642
     -9         6700k      3700k       2350k         828642

.SH OPCIK
.TP
.B \-c --stdout
Tmrts vagy kibonts a szabvnyos kimenetre. A \-c -vel tbb fjl
bonthat ki egyszerre, de csak egyetlen fjl tmrthet a stdout-ra.

.TP
.B \-d --decompress
Kibonts. A
.I bzip2,
.I bunzip2
s a
.I bzcat
tulajdonkppen ugyanaz a program, ami annak alapjn dnti el, hogy mit
kell tennie, hogy melyik nevt hasznljuk. Ez a kapcsol fellbrlja
ezt a dntst, s a
.I bzip2
kibontknt fog mkdni.

.TP
.B \-z --compress
A \-d ellentte: a tmrtst erlteti, fggetlenl attl, hogy a programot
melyik nevvel indtottuk.

.TP
.B \-t --test
A megadott fjlok srtetlensgt ellenrzi, de nem bontja ki ket.
Valjban egy "prbakibontst" vgez, s az eredmnyt eldobja.

.TP
.B \-f --force
Fellrja a kimeneti llomnyokat. Rendes esetben a
.I bzip2
nem r fell mr ltez kimeneti fjlokat.

.TP
.B \-k --keep
Megtartja (nem trli le) a bemen llomnyokat be- s kitmrtskor.

.TP
.B \-s --small
Cskkenti a memriahasznlatot, tmrtskor, kibontskor,
s tesztelskor.
A fjlok kibontsa s tesztelse egy mdostott algoritmussal trtnik,
amelynek csupn 2.5 bjtra van szksge bjtonknt a blokkban.
Ez azt jelenti, hogy brmelyik fjl kibonthat 2300k memriban,
igaz, a norml sebessgnek csaknem felvel.

Tmrtskor a -s 200k blokkmretet llt be, ami a memriahasznlatot
megkzeltleg ugyanezekre az rtkekre korltozza, a tmrts mrtknek
rovsra. Rviden: kevs memrival (8 megabjt vagy kevesebb) rendelkez
gp esetben mindig hasznljuk a -s kapcsolt.
(ld. mg: MEMRIAKEZELS)

.TP
.B \-v --verbose
Bbeszd md -- megmutatja a tmrts mrtkt minden feldolgozott
fjl esetben. Tovbbi \-v-k a "bbeszdsg" mrtkt nvelik, rengeteg
olyan informcit adva, melyek fknt diagnosztikai clbl lehetnek
rdekesek.

.TP
.B \-L --license -V --version
A program verziszmt, felhasznli engedlyeket s feltteleket jelenti
meg.

.TP
.B \-1 to \-9
Tmrtskor a blokkmretet lltja 100k, 200k ... 900k-ra.
Kibontskor semmilyen hatsa nincs.
Lsd mg: MEMRIAKEZELS

.TP
.B \--repetitive-fast
.I bzip2
Nmi l-vletlenszer varicit visz az ersen ismtld jelleg
blokkokba, hogy tmrtskor cskkentse a "legrosszabb eset"
esetn elll teljestmnyromls valsznsgt.
Ha a rendezs nehzsgekbe tkzik, a program a blokkot
sszekeveri, s a rendezst jraindtja.
Durvn, a
.I bzip2
hromszor annyi ideig tart ki az jrarendezs eltt az sszekeversig,
mint ameddig egy "j" bemenet feldolgozsa tartana.
Ezzel a kapcsolval sokkal hamarabb feladja.

.TP
.B \--repetitive-best
A \--repetitive-fast ellentte; sokkal kemnyebben prblkozik
az sszekeversig a rendezs eltt.

.SH ADATMENTS SRLT FJLOKBL
A
.I bzip2
a fjlokat rendszerint 900 kilobjtos blokkokban tmrti.
Minden blokkot kln kezel. Ha az adathordoz vagy az tvitel
hibja miatt egy tbb blokkbl ll .bz2 fjl megsrl, elkpzelhet
az adatok megmentse az llomny srtetlen blokkjaibl.

Minden blokk tmrtett megfeleljt egy-egy 48 bites minta hatrolja,
ami elg j biztonsggal teszi lehetv a blokkhatrok megllaptst.
Minden blokk tartalmazza a sajt 32 bites CRC-jt, gy a srlt s
a srtetlen blokkok egymstl megklnbztethetk.

A
.I bzip2recover
egy egyszer program, aminek clja az egyes blokkok megtallsa a .bz2
archvumban, s klnll .bz2 fjlokknt val kirsa. Ezek kztt a
.I bzip2 -t
segtsgvel megkereshetk s kibonthatk a srtetlen blokkok.

A
.I bzip2recover
egyetlen, egyszer argumentumot fogad el, ez pedig a srlt llomny
neve, s a klnll blokkokat tartalmaz fjlokat hoz ltre
"rec0001file.bz2", "rec0002file.bz2", stb. nven. A keletkez fjlok
nevei olyanok, hogy az egymst kvet feldolgozsoknl a
joker karakterek hasznlatakor, pldul a
"bzip2 -dc rec*file.bz2 > javtott_adat"
esetn a fjlok a helyes sorrendben jelennek meg.

A
.I bzip2recover
nagy .bz2 fjlok esetn lehet hasznos, mivel ezek tbb
blokkot tartalmaznak. Teljesen hibaval a hasznlata
az egy blokkot tartalmaz srlt fjloknl, mivel
srlt blokk nem llthat helyre. Az adathordoz vagy az tvitel
hibibl add adatveszts lehetsgnek a lehet legkisebbre
cskkentshez megfontoland esetleg a kisebb blokkmret
hasznlata.

.SH A TELJESTMNYRL
A tmrts rendezs fzisban a fjl hasonl rszeinek sszegyjtse
trtnik. Emiatt az ismtld szimblumok igen hossz lncolatt
(mint pl. a tbb szzszor ismtld "aabaabaabaab ...") tartalmaz
fjl tmrtse szlssgesen lass lehet.
Ilyenkor a
\-vvvvv
opcival esetleg rszletesen nyomon kvethet a folyamat.
A kibonts sebessgt ez nem befolysolja.

Az ilyen beteges esetek a gyakorlatban ritknak tnnek, fleg
tesztclokra mestersgesen sszelltott fjlokban, s alacsony
szint disk image-ekben (egy hajlkony- vagy merevlemez tartalma
fjlba rva) fordulnak el. Ez utbbiak
.I bzip2
-vel trtn tmrtse nem javasolt.

Ha egy fjl tmrtsekor jelents lassuls tapasztalhat,
rdemes megprblni a legkisebb blokkmret belltst a \-1
kapcsolval.

A
.I bzip2
rendszerint pr megabjt memrit foglal le magnak, amiben dolgozhat,
aztn az egszet elgg ssze-vissza mdon tltgeti fel.
Ez azt jelenti, hogy mind a tmrts, mind pedig a kibonts esetn
a teljestmnyt nagyban az hatrozza meg, hogy a rendszer
milyen gyorsan tudja kiszolglni a cache-ben nem tallhat adatokra
irnyul krseket. Emiatt a programkd ilyen esetek arnynak
cskkentst clz kis vltoztatsra arnytalanul nagy
teljestmnynvekeds figyelhet meg.
A
.I bzip2
 gy valsznleg a nagyon nagy cache-sel rendelkez gpeken teljest a
legjobban.

.SH FIGYELMEZTETS
Az I/O hibajelzsek nem olyan hasznosak, amilyenek lehetnnek.
A
.I bzip2
kemnyen prblkozik, hogy az I/O hibkat szrevegye, s tisztn
lpjen ki, de annak a rszletei, hogy tulajdonkppen mi is volt a
problma, gyakran flrevezetnek tnnek.

Ez a kziknyvoldal a
.I bzip2
0.9.0-s verzira vonatkozik.
Az ezen verzival ksztett tmrtett adat teljes mrtkben
kompatbilis az ezt megelz, szabadon terjeszthet 0.1pl2 verzival
ksztettel, egyetlen kivtellel: 0.9.0 helyesen bontja ki a tbb
archvumot tartalmaz sszevont fjlokat. A 0.1pl2 ezt nem tudja
megtenni: az els fjl kibontsa utn megll.

Windows 95 s NT alatt a joker karakterek hasznlata nem tkletes.

A
.I bzip2recover
32 bites egszeket hasznl a tmrtett fjlokban a bitpozcik
brzolsra, gy nem kpes kezelni az 512 megabjtnl nagyobb
archvumokat. Ez a problma egyszeren javthat.

.SH SZERZ
Julian Seward, jseward@acm.org.

http://www.muraroa.demon.co.uk

A
.I bzip2
-ben megtesteslt tletek a kvetkezknek tulajdonthatk:
Michael Burrows s David Wheeler (blokkrendez transzformci)
David Wheeler (Huffman kdol)
Peter Fenwick (strukturlt programozsi modell az eredeti
.I bzip
-ben s tbb finomts)
s
Alistair Moffat, Radford Neal valamint Ian Witten (az eredeti
.I bzip
aritmetikai kdolja).
Ksznet illeti ket segtsgkrt, tmogatsukrt s tancsaikrt.

A program forrskdjhoz mellkelt dokumentciban tallhatk mg
hivatkozsok tovbbi dokumentciforrsokra.
Christian von Roques sztklt gyorsabb rendez algoritmus keressre,
s a tmrts gyorstsra.
Bela Lubkin biztatott a tmrt "legrosszabb eset"-i teljestmnynek
nvelsre.
Tbb ember kldtt hibajavtsokat, segtett hordozhatsgi problmk
megoldsban, adott klcsn gpeket, adott tancsot s volt
ltalban segtsgemre.