Provided by:
manpages-tr_1.0.5.1-2_all 
ISIM
bzip2 - blok siralamali dosya sikistirici v1.0.2
bunzip2 - sikistirilmis dosyalari acar
bzcat - dosyalari standart ciktida acar
bzip2recover - zarar gormus bzip2 dosyalarindaki verileri kurtarir
KULLANIM
bzip2 [ -cdfkqstvzVL123456789 ] [ dosyalar ... ]
bunzip2 [ -fkvsVL ] [ dosyalar ... ]
bzcat [ -s ] [ dosyalar ... ]
bzip2recover dosyaismi
A,CIKLAMA
bzip2, Burrows-Wheeler blok siralamali metin sikistirma algoritmasini
ve Huffman kodlamasini kullanarak dosyalari sikistirir. Sikistirma
orani geleneksel LZ77/LZ78 tabanli sikistirma araclarindan cok daha
iyidir. PPM ailesi istatistiksel sikistiricilarin performansina oldukca
yakindir.
Komut satiri secenekleri kasitli olarak GNU gzip'e oldukca benzer
sekilde yapilmistir, fakat birebir ayni degillerdir.
bzip2, komut satiri seceneklerine eslik edecek dosya isimlerinin
listesini ister. Her bir dosya sikistirilmis surumu ile degistirilir
ve ismi "orjinal_dosya.bz2" sekline donusturulur. Her bir
sikistirilmis dosya, orjinal dosya ile ayni izinlere, ayni duzenlenme
tarihlerine ve mumkun ise ayni iyeliklere sahiptir. Bu sayede
sikistirilmis dosya acildigi zaman orjinal dosya elde edilmis olur.
Dosya isimlerini yonetmek isi, orjinal dosya ismini koruyamayacak,
izinler ve iyelikleri veya tarihleri kendi dosya sistemi icinde
bulunduramayacak dosya sistemlerinin (mesela MS-DOS) oldugu dusuncesi
ile yurutulmektedir. Muhtemel dosya ismi uzunlugu kisitlamalarini da
unutmamak gerekir.
bzip2 ve bunzip2 ontanimli olarak, varolan dosyanin uzerine yazmazlar.
Sayet bunu yapmak isterseniz -f secenegini kullanmaniz gerekir.
Sayet dosya ismi belirtilmezse, bzip2 standart girdiden standart
ciktiya sikistirma islemi yapar. Bu durumda, bzip2 sikistirilmis
ciktiyi bir terminale yazmayi reddedecektir, bu nedenle boyle bir sey
yapmak tamamen anlamsiz ve amacsiz olacaktir.
bunzip2 (veya bzip2 -d) belirtilen butun dosyalari acar. bzip2
tarafindan sikistirilmamis dosyalar tespit edilir ve yok sayilir,
ardindan bir uyari mesaji verilir. bzip2, sikistirilmis dosyadan
acilacak dosyaya aktarilacak dosya ismini su sekilde tespit etmeye
calisir:
dosyaismi.bz2 => dosyaismi
dosyaismi.bz => dosyaismi
dosyaismi.tbz2 => dosyaismi.tar
dosyaismi.tbz => dosyaismi.tar
baskabirisim => baskabirisim.out
Sayet dosya yukarida belirtilen soneklerden birisine sahip degilse,
bzip2 mizmizlanir ve orijinal dosya ismini sonuna .out ekleyerek
kullanir.
Sikistirma isleminde oldugu gibi, dosya ismi belirtmeden yapilan acma
isleminde standart girdiden standart ciktiya acma islemi yapilir.
bunzip2, iki ya da daha fazla sikistirilmis dosyadan olusan birlesik
bir dosyayi dogru bir sekilde acacaktir. Sonucta acilmis dosyalar
birlesik olarak elde edilir. Birlesik sikistirilmis dosyalarin butunluk
sinamasi yapilmasi (-t) ozelligi de desteklenmektedir.
Ayrica -c secenegini belirterek standart ciktida dosyalari
sikistirabilir veya acabilirsiniz. Coklu dosyalar bu sekilde
sikistirilabilir veya acilabilir. Sonuc ciktilari standart ciktiya
pespese gonderilir. Bu sekilde coklu dosya sikistirma coklu
sikistirilmis dosya temsilcilerinin bulundugu bir akim uretir. Bu tur
bir akim sadece bzip 0.9.0 veya daha sonraki bir surumle duzgun bir
sekilde acilabilir. Daha eski surumler ilk dosyayi actiktan sonra
dururlar.
bzcat (veya bzip2 -dc) belirtilen butun dosyalari standart ciktiya
acar.
bzip2, argumanlari sirayla BZIP2 ve BZIP ortam degiskenlerinden okurlar
ve bu argumanlari komut satiri argumanlarini okumadan once uygularlar.
Bu, ontanimli argumanlarin uygulanmasi icin elverisli bir yol saglar.
Sikistirma islemi, sikistirilmis dosya orijinalinden biraz buyuk olsa
bile, mutlaka yapilir. Yuz bayttan daha kucuk dosyalar sismanlamaya
meyillidir. Cunku sikistirma algoritmasi ilk 50 bayta yazilacak bir
sabite sahiptir. Rasgele veri (pek cok dosya sikistiricisinin ciktisi
dahil) bayt basina 8.05 bitlik bir oran ile kodlanir. Bu da %0.5lik bir
genislemeye sebep verir.
Bir ozdenetim mekanizmasi olarak, bzip2 32 bitlik CRC kullanir ve
acilan dosya ile orijinal sikistirilmis dosyanin ayni olup olmadigini
kontrol eder. Bu tedbir sikistirilmis dosyada meydana gelebilecek
bozulmalar ve bzip2'de olmasi muhtemel yazilim hatalarina karsi
guvenlik saglar. Elden gecirilen her bir dosya icin tespit edilemeyecek
hata orani 4 milyarda bir degisiklik oraninin altindadir. Bu orandan
daha kucuk degisiklikler mikroskobiktir ve tespit edilemeyebilir.
Bununla birlikte uyanik olmakta fayda vardir, kontrol acma islemi
esnasinda yapilir ve sadece bir takim seylerin yanlis oldugunu soyler.
Orijinal acilmis verileri kurtarmaniza yardimci olmaz. Bu durumda,
verileri kurtarmak icin bzip2recover kullanmalisiniz.
Geri d"onen degerler
Normal cikti icin 0, cevresel sorunlar icin 1 (dosya bulunamamasi,
gecersiz secenekler, G/C hatalari, vs..), sikistirilmis dosyada
bozukluk icin 2, bzip2'nin paniklemesine sebep olan dahili bir
tutarlilik hatasi icin 3 (yazilim hatasi).
SE,CENEKLER
-a, --ascii
Ascii metin kipi: satir sonlarini yerel ayarlara gore
donusturur. Bu secenek, sadece Unix disi birkac sistemde
desteklenir. Ornegin MSDOS'da sikistirma esnasinda CRLF'ler
LF'ye cevrilir ve acma isleminde LF'ler CRLF'ye donusturulur.
-c, --stdout
Standart ciktida sikistirilir veya acar.
-d, --decompress
Mutlaka acma islemi yapilir. bzip2, bunzip2 ve bzcat aslinda
ayni yazilimdir ve yapilmasi gereken islem, kullanilan yazilim
ismine gore kararlastirilir. Bu secenek, bu yontemi yoksayar ve
bzip2'yi acma islemine zorlar.
-z, --compress
-d nin ziddi: hangi isim ile cagrilirsa cagrilsin mutlaka
sikistirma yapilir (ornegin, bunzip2 komutuna bu secenegi
vererek sikistirma yapmasini saglayabilirsiniz).
-t, --test
Belirtilen dosya veya dosyalarin butunlugunu kontrol eder,
gercekte acma islemi yapmaz. Bu secenek ile bir deneme acilimi
yapilmis olur ve sonuclar belirtilir.
-f, --force
Cikti dosyasinin uzerine yazmaya zorlar. Normal olarak, bzip2
varolan bir dosyanin uzerine yazmayacaktir. Ayrica bu secenek
bzip2'yi dosyalara olan sabit baglari kirmaya zorlar, boylece bu
baglarda uzerine yazma yapilmaz.
bzip2 normalde dogru sihirli baslik baytlarina sahip olmayan
dosyalari acmayi rededecektir. Sayet -f kullanilir ise, bu
dosyalari degistirilmeden gececektir. GNU gzip de bu sekilde
davranir.
-k, --keep
Sikistirma veya acma islemi esnasinda orjinal dosyalari silmez,
saklar.
-s, --small
Sikistirma, acma ve sinama islemleri icin bellek ihtiyacini
azaltir. Dosyalar bayt blogu basina 2.5 bayt gerektiren
degisiklik yapilmis bir algoritma ile acilir ve sinanir. Bunun
anlami, herhangi bir dosyanin 2300k lik bir bellek alani icinde
acilabilecegidir ancak basarim, normal hizin yarisina kadar
duser.
Sikistirma esnasinda, -s secenegi ile 200k lik blok boyutu
secilir, bu bellegi de ayni sekilde sinirlar ve sikistirma
oranini artirir. Uzun lafin kisasi, makinenizin bellegi 8MB'dan
daha az ise -s secenegini her seyde kullanin. Asagidaki BELLEK
Y"ONETIMI bolumune bakiniz.
-q, --quiet
Gerekli olmayan uyarilar verilmez. G/C ve diger onemli hata
iletileri gizlenmez.
-v, --verbose
Ayrinti kipi: islenen her bir dosya icin sikistirma oranlarini
gosterir. Daha fazla -v ayrinti oranini artiracaktir. Teshis
amacli kullanima uygun olarak pek cok bilgi yazilim tarafindan
bildirilecektir.
-L, --license, -V, --version
Yazilimin surum, lisans, kosul ve kurallarini goruntuler.
-1 (veya --fast) den -9 (veya --best) a kadar
Sikistirma yaparken blok boyutlarini 100k, 200k, .., 900k
seklinde ayarlar. Cozme isleminde bir etkisi yoktur. Asagidaki
BELLEK Y"ONETIMI bolumune bakiniz. --fast ve --best secenek
isimleri GNU gzip uyumlulugunu saglamak icindir. Acikcasi,
--fast gozle gorulur bir hiz artisi saglamaz ve --best sadece
ontanimli degerlerin secilmesini saglar.
-- Ardindan belirtilen butun argumanlari dosya isimleri olarak
kabul eder. Bu argumanlarin tek cizgi ile baslamis olmalari bile
onemli degildir. Boylece tek cizgi ile baslayan dosya isimlerini
kullanabilirsiniz. Ornegin: bzip2 -- -benim_dosyam.
--repetitive-fast, --repetitive-best
Bu secenekler surum 0.9.5 ve uzerinde gereksizdir. Daha eski
surumlerde, bazi kaba kontrollerin yapilmasini saglamaya yonelik
seceneklerdir. Bazen faydali olabilmekte idi. 0.9.5 ve ustu
surumler bu ayarlarin yapilmasina gerek birakmayan daha iyi
algoritmalar kullanmaktadirlar.
BELLEK Y"ONETIMI
bzip2 buyuk dosyalari bloklar halinde sikistirir. Blok boyutlari, hem
sikistirma oranini, hem de sikistirma/acma icin gereken bellek
miktarini etkiler. -1 den -9 a kadarki secenekler ile istenen blok
boyutlarini 100.000 bayttan 900.000 bayta (varsayilan deger budur)
kadar tanimlamasini saglar. Acma islemi sirasinda, sikistirilmis
dosyanin bas kismindan sikistirma esnasinda kullanilan blok boyutu
okunur ve daha sonra bunzip2 kendisi icin gerekli olan bellek alanini
ayirir ve oraya yerlesir. Sikistirma blok boyutlari sikistirilmis
dosya icinde saklandigi icin, -1 den -9 a kadar olan secenekler acma
islemi esnasinda gecersizdir. Sayet bu secenekleri belirtirseniz,
program bunlari gozardi edecektir.
Sikistirma ve acma gereksinimleri, bayt cinsinden, yaklasik olarak:
Sikistirma: 400k + ( 8 x blok boyu )
Acma: 100k + ( 4 x blok boyu ) veya
100k + ( 2.5 x blok boyu )
Daha buyuk blok boyutlari hizli bir sekilde azalan sinira yakin
donusler verir. Sikistirmanin pek cogu, blok boyutunun ilk iki veya uc
yuz k lik kismindan elde edilir. Bu kurali, kucuk makinelerde bzip2
kullanirken aklinizdan cikarmayin. Ayrica aklinizdan cikarmamaniz
gereken diger bir noktada, acma sirasindaki bellek gereksinimlerinizin,
sikistirma sirasinda kullandiginiz blok boyutlari ile birebir alakali
oldugudur.
900k lik ontanimli blok boyutu ile sikistirilan dosyalar icin, bunzip2
acma islemi sirasinda 3700 kB lik bellege ihtiyac duyacaktir. 4 MB lik
bellege sahip bir makinede herhangi bir dosyayi acmak icin, bunzip2,
ihtiyac duyulan bellek miktarinin yarisi ile (takriben 2300KB) acma
islemini gerceklestirecek bir argumana sahiptir. Bu argumanin
kullanilmasi acma hizini da yari yariya dusurecektir. Cok gerekli
olmadikca bu secenegi (-s) kullanmayin. (*C.N: gunumuzde kullanilan
makineler icin bu secenek oldukca nostaljik gorunebilir ama test ve
egitim amacli oldukca dusuk ozeliklere sahip ikinci veya ucuncu
makineleri olanlar bu secenegin degerini anlayacaktir. P233 makinede 16
MB edoram ile harikalar :-) yaratiyor.)
Genel kural olarak, bellek sinirlariniz elverdigi surece, mumkun olan
en buyuk bloklari kullanin. Boylece azami sikistirma elde edilir.
Sikistirma ya da acma hizinin aslinda blok boyutu ile bir ilgisi
yoktur.
Diger bir onemli nokta da dosyalara tek bir bloga sigacak dosyalara
yapilan islemdir. Aslinda karsilasilan pek cok dosya bir bloktan
kucuktur. Dosya bir bloktan kucuk oldugundan, gercekte kullanilan
bellek miktari normalde gerekenden kucuk olur. Ornegin: 20.000 baytlik
bir dosyayi -9 secenegi ile sikistirmak, sikistiricinin 7600k bellege
ihtiyac duymasina sebep olacaktir ama gercekte sadece
400k+20000*8=560kB bellek kullanilacaktir. Ayni sekilde acma islemi de
3700k lik bir bellek ayiracak ama sadece 100k+20000*4=180kB lik bir
alani kullanacaktir.
Asagida degisik blok boyutlarinin bellek kullanimini gosteren bir tablo
bulacaksiniz. Ayrica Calgary Text Compression Corpus'da (Calgary Metin
Sikistirma Kulliyati) 14 dosyalik sikistirilmis toplam boyut olarak
3.141.622 bayt kayitlidir. Asagidaki sutunlar, blok boyutu ile
sikistirma arasindaki ilgi hakkinda bir fikir verecektir. Buyuk
dosyalar icin buyuk blok boyutlarini kullanmak daha avantajlidir. Cunku
Kulliyat daha kucuk dosyalar uzerine kuruludur.
Sikistirma Acma -s ile acma Kulliyat
Secenek kullanimi kullanimi kullanimi boyutu
-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
HASARLI DOSYADAN VERI KURTARMA
bzip2 dosyalari genellikle 900k lik bloklar halinde sikistirir. Her bir
blok birbirinden bagimsiz olarak ele alinir. Bir aygit ya da aktarim
hatasi pek cok .bz2 blogunun hasar gormesine sebep olursa, zarar
gormemis bloklardaki verileri kurtarmak mumkun olabilir.
Sikistirilmis her bir blok 48 bitlik bir sablon ile temsil edilir.
Boylece blok sinirlarini kesin olarak bulmak mumkun olabilir. Ayrica
her bir blok kendi 32 bitlik CRC'sini bulundurur, boylece bozuk bloklar
saglam olanlardan ayirt edilebilir.
bzip2recover, basitce, .bz2 dosyalarin icindeki bloklari tarayan bir
yazilimdir. Buradaki her bir taranmis blogu kendi .bz2 dosyasina
aktarir. Sonuclarin butunlugunu kontrol etmek icin bzip2 -t komutunu
kullanabilirsiniz. Ardindan bozulmamis verileri acabilirsiniz.
bzip2recover sadece hasarli dosya ismini arguman olarak alir ve
kurtardigi bloklari "rec00001file.bz2", "rec00002file.bz2" seklinde
yazar. Bu isim numaralandirmasi sonradan yapilacak islemlerdeki
simgelemlerin kullanimi icindir. Ornegin, bzip2 -dc rec*file.bz2 >
kurtarilan_veri komutu dosyalari dogru siralama ile uretir.
bzip2recover daha cok buyuk .bz2 dosyalari icin faydalidir cunku bunlar
daha cok blok icerirler. Tek bloktan olusmus hasarli bir dosya ile bu
yazilimi kullanmanin hicbir anlami yoktur, cunku bozuk blok
kurtarilamaz. Sayet herhangi bir hasar durumunda zararinizi en azda
tutmak istiyorsaniz, daha kucuk blok boyutlari kullanmaniz akillica
olacaktir.
BA,SARIM HAKKINDA
Sikistirmanin siniflandirma asamasi, birbirine benzer dizgeleri bir
araya getirmektir. Bu nedenle tekrarlanan sembollerden olusmus
dosyalarin sikistirmasi (aabaabaabaab ... gibi) daha uzun tutabilir.
Surum 0.9.5 ve uzerindekilerde basarim daha iyidir. En kotu durum ile
ortalama durum sikistirma zamani arasindaki oran 10:1 civaridir. Daha
onceki surumlerde bu durum 100:1 gibiydi. Isterseniz surecin butun
ayrintilarini gorebilmek icin -vvv secenegini kullanabilirsiniz.
Acma hizi bu durumdan bagimsizdir.
bzip2 genellikle islem yapmak icin, cok MB li bellek alanlari ayirir ve
daha sonra tarafsiz ve rasgele bir sekilde saldirir. Bunun anlami, acma
ve sikistirma performanslarinin makinenizin onbellegine erisim suresi
ile alakali oldugudur. Onbellege erisim kayiplarini dusurecek kucuk kod
degisiklikleri buyuk performans artislari getirebilir. Cok buyuk
onbelleklere sahip makinelerde bzip2 cok yuksek basarim gostermektedir.
YETERSIZLIKLER
G/C hata iletileri olmalari gerektigi kadar faydali degildiler. bzip2
G/C hatalarini tespit etmek ve temiz bir sekilde cikmak icin oldukca
ter doker ama bazen sorunun ayrintilari gozden kacabilmektedir.
Bu kilavuz sayfasi bzip2'nin 1.0.2 surumune aittir. Bu surum ile
sikistirilmis veriler gecmis surumler ile tamamen uyumludur (surum
0.1pl2, 0.9.0, 0.9.5, 1.0.0 ve 1.0.1 ile), tek istisna 0.9.0 ve uzeri
surumler coklu dosya sikistirmalari duzgunce acabilirler, 0.1p12 bunu
yapamaz, ilk dosyayi actiktan sonra duracak ve akimin gerisini
getirmeyecektir.
bzip2recover surumleri 1.0.2 den onceki surumlere goredir.
Sikistirilmis dosya icindeki bit konumlarini belirtmek icin 32 bitlik
tamsayilar kullanirlar ve bu yuzden 512 MB'den daha buyuk sikistirilmis
dosyalar elde edilemezler. Surum 1.0.2 ve uzeri 64 bitlik tam sayilar
kullanirlar ve GNU ile Windows platformlarini desteklerler. Bu tip bir
sinir ile kurulup kurulmadigini anlamak icin bzip2recover'i argumansiz
calistirin. Her halukarda, bu siniri ortadan kaldirmak mumkundur.
Sayet yazilimi MaybeUInt64 ile yeniden derleyebilirseniz, isaretsiz 64
bitlik tamsayi ayarlanmis olacagindan bu sinir ortadan kalkmis
olur.
YAZAN
Julian Seward, <jseward (at) acm.org> tarafindan yazilmistir.
http://sources.redhat.com/bzip2
bzip2'deki fikirlerin sahipleri sunlardir (en azindan): Michael
Burrows ve David Wheeler (blok siralamali donusum icin), David Wheeler
(tekrar, Huffman kodlayicisi), Peter Fenwick (orijinal bzip'teki
yapisal kodlama modeli ve pek cok tasfiye icin) ve Alistair Moffat,
Radford Neal ve Ian Witten (orijinal bzip'teki aritmetik
kodlayici icin). Onlara yardimlari, destek ve tavsiyeleri icin
sukran borcluyum. Belgeler icin kaynak kod paketine bakiniz.
Christian von Roques, daha hizli siralama algoritmasi icin beni
cesaretlendirdi ve boylece daha hizli bir sikistirma elde
edebildik. Bela Lubkin, en kotu durum sikistirmasi icin cesaret verdi.
bz* betikleri GNU gzip'inkilerden turetildi. Bir cok kimse de,
yamalar gonderdi, tasinabilirlik sorunlarinda yardimci oldu,
tavsiyelerde bulundu; bunlar cogunlukla faydali oldu.
,CEVIREN
Yalcin Kolukisa <yalcink01 (at) yahoo.com>, Ocak 2004
bzip2(1)