Bu sayfadaki yazılar
Sayfanın metni
Sayfa 28
LhA v1.30r
Tanımı: Birden fazla dosyanın ya da çok uzun dosyaların tek bir dosya olarak arşivlenip saklanmasını sağlar. Gerektiğinde de bu arşivi aynı programla açabilirsiniz. Bulunduğu disketler: Fish disketleri, UnderWater Dreams Modem Packers
Evet, bu ay değişik bir utility'miz daha var. Bu utility ile çalışmalarınızı tek bir dosya halinde back-up'layabilirsiniz. Bir sürü dosyanın disketlerde arşivli olarak düzenli tutulması epey bir çaba gerektirir. Hele bir de bu arşivi arada sırada tazelemeniz gerekiyorsa işiniz daha da kötü.
Özellikle arşivlemeler için geliştirilen özel bazı algoritmalar kullanan arşivleme programlarının yazılması epey uzun bir geçmişe dayanmakta. Bu tür programlar özellikle network ve modem kullanan büyük sistemlerde uzun sürelerden beri mevcut. Unix ve MS-DOS sistemlerinde bu tür arşivleme programları arasında en ilkler arasında herhalde ZOO ve ARC yer almakta. Bunların Amiga'da çalışan versiyonları da mevcut. Fakat bunlarda kullanılan algoritmalar çok basit olduğundan ve yeni versiyonları yapılmadığından bunlar kısa süre içinde yerlerini başka arşivleyicilere bıraktılar.
Amiga'da ve kısmen de olsa IBM uyumlu bilgisayarlarda çıkan en ünlü arşivleme programları arasında bir sürü değişik versiyonu bulunan Warp (.WRP), PkaZip (ZIP), DiskSmasher (DMS) ve son olarak da LhArc (.LHA) var. Bahsettiğim bu arşivleme programları iki gruba ayrılmaktalar: Disk arşivleyiciler ve file arşivleyiciler. Disk arşivleyiciler arasına da Warp ve DiskSmasher girmekte. Bunlar bir disketi track track okuyup bu track'ları sıkıştırır ve arşivlerler. Fakat böyle bir arşivleme sistemi sadece update edilmeyecek file'ların bulunduğu disketler için mantıklıdır. Bunların başka bir kullanım alanı da track track yükleyen programların da arşivlenebilmesini sağlamak. Bu şekilde bu tür disketler de normal bir AmigaDOS arşiv dosyasına çevrilebilir ve gerektiğinde açılarak kullanılabilir. Bu da özellikle modem kullanan kişilere büyük kolaylık sağlamakta; zira track track yükleyen bir disket başka bir şekilde asla modem aracılığıyla karşı tarafa gönderilemez.
Burada ele aldığım arşivleme programı file arşivleyiciler arasına girmektedir ve şimdiye kadar kullanılan en iyi algoritmalar da bu programda bulunmaktadır. Daha önce LhArc ile çıkan -lh0- ve -lh1- arşivleme algoritmalarının yanı sıra çok yeni olan -lh4- ve -lh5- algoritmalarını destekleyen bu program, aslında sanki LhArc'ın yeni versiyonu gibi gözükmekte. LhA, Lempel-Ziv adı verilen sıkıştırma mantığını ve Huffman saklama biçimini kullanmakta. Bunlar, şu an geliştirilen en son ve en kaliteli arşivleme algoritmaları. Programda kullanabileceğiniz bütün komutlar ve parametreler LhArc'ınkilerle aynı. Bunun üzerine tabii ki bir sürü de yeni fonksiyon mevcut. Bu yüzden bu açıklama aslında hem LhArc, hem de LhA için geçerli sayılabilir. Tabii LhArc türevleri olan Lz ve LhArcA arşivleyicileri de aynı komut ve opsiyonları kullandığından bunlarla da pek sorununuzun kalacağını zannetmiyorum.
LhA'nın kullandığı algoritmalar sayesinde saklanan dosyalarda bunlar açılmadan önce kontrol toplamları kontrol edilir. Bu kontrol toplamına kısaca CRC (Cyclic Redundancy Check) denmekte. Bu CRC değeri arşivlenen dosya içerisindeki byte'ların toplamıdır. Bu toplamın değeri 16 bitle sınırlandırılmıştır. Eğer bu değer hexadecimal $ffff değerini geçerse, tekrar başa ($0) dönülür. Değerin aslında tek amacı, dosyanın bozuk olup olmadığını kontrol edebilmek içindir.
Gelelim programımızın kendisine. Programı CLI üzerinden ya da DiskMaster gibi bir utility aracılığıyla çağırabiliriz. Bu ikinci yöntemi yazımın en sonunda kısaca açıklayacağım. Bu açıklamayla arşivlemelerinizi DiskMaster üzerinden rahatlıkla yapabilirsiniz.
Programın hemen hemen hiçbir şeye gereksinimi yok. KickStart v1.2 ve v1.3 kullananlar, programı yükledikleri diskete ya da harddiske arp.library'i de eklemeyi unutmasın. Bu library'i piyasadaki utility disketlerinin çoğunda (Libs directory'sinde) ya da Fish PD disketlerinin içinde bulabilirsiniz. Zaten programın kendisi de Fish disketlerinden geldiğinden, library genelde yanında birlikte bulunmakta. KickStart 2.0 kullanıcılarına Libs directory'sine arp.library'i eklemelerine gerek olmadığını hatırlatmak isterim. Zira KickStart 2.0'da arp.library'nin çok daha gelişmiş bir versiyonu ROM içerisinde mevcut. Program, bunu otomatik olarak algılar ve kullanır. Ekstradan bir şey yapmanıza gerek yok.
Dilerseniz artık programın CLI üzerinden nasıl kullanıldığını görelim:
LhA [-opsiyon] <komut> <arşiv dosyası> [[Root] [File]] [@] [DestDir]
Programı CLI'dan yukarıdaki gibi çağırabiliriz. Burada ilk iki parametrenin sırası fark etmez. Bunları istersek tüm komut satırına serpiştirebilir ya da istersek en başta sıralı olarak toplayabiliriz. En mantıklısı yine de tabii ki sıralı olması. Bu şekilde aklımız da karışmaz. Yukarıdaki komut satırında köşeli parantez ([,]) içinde belirtilen parametreler girilmese de, program doğru çalışır. Bu parametreler opsiyonel (isteğe göre) parametrelerdir. Fakat diğer parantezlerde (<,>) bulunan parametreler kesin girilmelidir.
Gelelim yukarıdaki parametreleri tek tek tanıtmaya. İlk parametre olan opsiyon çeşitli çalışma parametrelerini değiştirmemizi sağlar. Bu parametrelerin başında birer <-> işareti bulunmalıdır. Aksi halde parametre yerine komut gibi algılanacağından, istemediğiniz işlemler gerçekleşebilir. İkinci parametre olan komutları ve opsiyonları daha aşağıda detaylı olarak tanıtacağım. <arşiv dosyası> parametresiyle çalışmaların (okuma/yazmaların) yapılacağı arşiv dosyasının ismini vermeniz gerekmekte. Bu ismi verirken komple directory dizilimini ve file ismini CLI komutlarında olduğu gibi girmelisiniz (Device:Directory[/alt dir...]/file ismi). Eğer file ya da dir isimleri içerisinde boşluklar mevcutsa, komple directory dizilimini çift tırnaklar (") içinde yazmalısınız. [Root] parametresi, özellikle harddisk kullananlar için bir hayli yararlı bir fonksiyondur. Eğer bir directory içinde alt directory'leri ve/veya file'ları arşivliyorsanız ve üst directory'nin isimlerinin kaydedilmesini istemiyorsanız, buraya aktif directory'nin ismini doğru olarak yazmalısınız. Bu şekilde arşivlenen file'lar açılmaya kalkışıldığında, tekrar en ana directory'ler yaratılmaya kalkışılmayacak, sadece arşivlenmiş directory'ler ve file'lar açılacaktır.
[File] parametresi ile arşivlenmesini istediğimiz file isimlerini belirleyebiliriz. Burada pattern matching adı verilen karşılaştırmalı arşivleme yöntemini kullanabiliriz. Bu şekilde istemediğimiz bazı file'ları (örneğin başında/ içerisinde/ sonunda belli bir karakter/karakter dizisi bulunan dosyaları) arşivlemeyebiliriz. Bu özellik alfabetik arşivlemelerde ya da sadece belli dosyaları (source dosyaları mesela) arşivlemek için bir hayli yararlı bir yoldur. Şimdi dilerseniz, bu karşılaştırma yönteminde kullanılan özel işaretleri kısaca görelim. Bu işaretler file ismi içerisinde kullanılabilir ve duruma göre değişik işlevler üstlenebilirler.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 29
* ve # - File isminin başında kullanıldığında bu karakterden sonra gelen isim dizisi ile biten file'lar arşivlenir. İsmin ortasında kullanıldığında, bu sembolün solundaki karakter dizisiyle başlayan ve sembolün sağındaki karakter dizisiyle biten tüm dosyalar işlenir. En sonda kullanıldığında, sembolün solunda bulunan karakter dizisiyle başlayan file'lar arşivleme işlemine tabi tutulur. * ve # sembolleri anlayabileceğiniz gibi bilinmeyen n karakteri temsil ediyor. İşlem yapılacak tüm file isimleri, teker teker okunur ve karşılaştırma yapılır. Sonuçta karşılaştırma işlemini başarıyla geçen file isimleri de arşive eklenilir.
? - Bu sembol aynı */# sembolleri gibi çalışır. Aralarındaki tek fark ? sembolünün BİR bilinmeyen karakteri temsil etmesidir.
[@] ile, dilerseniz işlenecek dosyaları bir ASCII dosyasından okutabilirsiniz. Bu ASCII dosyasının her satırında ayrı bir file ismi (doğru directory dizilimi ile beraber!) bulunmalıdır. @ işaretinden hemen sonra, aralık bırakmadan bu ASCII dosyanın directory dizilimini ve ismini yazmalısınız. Tabii boşluk kullanılıyorsa (") işaretlerini kullanmayı unutmuyorsunuz.
[DestDir] ile arşiv açarken açılan dosyaların kaydedileceği directory'i belirleyebilirsiniz. Bu şekilde açılan dosyaları harddisk'inizin (ya da disketinizin) istediğiniz bir directory'sine gönderebilirsiniz.
Gelelim programda kullanılan komutlara. Bunları aşağıda açıklamalarıyla beraber bir liste olarak bulabilirsiniz.
a : Add files Arşive dosya ekle. Eğer arşiv dosyası mevcut değilse bunu yarat.
d : Delete files Arşivden dosya sil. e: Extract files Arşivdeki dosyaları aç. Bu komut -x opsiyonel parametresini göz önüne alır.
f: Freshen files Arşivdeki dosyaları yenileriyle tazele. l: List archive Arşiv içeriğini göster. Burada göreceğiniz kolonlar sırayla Original (orijinal dosya boyu), Packed (sıkıştırılmış dosya boyu), Ratio (yüzde olarak sıkıştırma oranı), Date (dosya yaratılış tarihi), Time (dosya yaratılış zamanı) ve Name (dosya ismi)'dir.
l : List quick Arşivde bulunan dosyaların sadece isimlerini (directory dizilimi olmaksızın!) ekrana yazar. Eğer arşivde boş bir directory mevcutsa bunun yerine bir boş satır basılır.
m : Move files to archive Aynı add gibi çalışır; fakat arşivlenen dosyaların orijinallerini siler.
p : Print files to stdout Arşivlenen dosyaları ekrana yazar. Bu komut ile arşivlenen ASCII yazı dosyalarını kayıt etmeden açarak görüntüleyebilirsiniz.
r: Replace files Eğer belirtilen file'lar zaten arşivde bulunuyorsa, bunlar arşivdeki kopyalarının üzerine yazılır.
t: Test archive Arşiv içeriğini teker teker açarak kontrol edilmesini sağlar. Açılan dosyalar hiçbir yere kaydedilmez.
u : Update archive Eğer işlenecek dosyalar arşivde mevcut değilse, bunlar arşive eklenir. Mevcutlarsa da eskisi silinerek yenisi üzerine kaydedilir.
v : List archive verbosed Arşiv içeriği dosyaların komple directory dizilimleri ve dosya açıklama notları (Comment) ile beraber listelenir.
vq : List archive verbose quick Arşiv içeriğindeki dosyaların sadece directory dizilimleri ve file isimleri listelenir.