Sıkıştırılmış Dosyalar
tar Dosyaları
TAR dosyaları, birden fazla dosyanın tek bir dosya haline getirilmesine yarar. Eskiden daha yaygın kullanılan kasetler, özellikle dosyaların arşivlenmesi için sıralı okuma/yazma işlemi yapmaktadır. Bu tip cihazlara dosyaları aralarında boşluk olmadan, sıralı bir biçimde okuyup yazabilmek için dosyaları bir araya getirip tek bir dosya haline getirmek gerekmektedir. tar programı TAR dosyası oluşturarak bu işi yapar. İsmi bu yüzden Tape ARchive sözcüklerinin kısaltmasından gelmektedir. Oluşturulan dosyalara genellikle tarball denilir. Burada ufak bir kelime oyunu yapılmaktadır. Tarball aslında denizde veya okyanusta katılaşarak topaklaşan petrol kalıntısına denilir. Bu tip topaklaşmalar sırasında petrol, civarındaki başka parçacıkları da bir araya getirdiği için bu benzetme yapılmıştır.
TAR dosyaları, birden fazla dosyayı bir araya getirmek için kullanılır, ancak sıkıştırma gerçekleştirmezler. tar programı UNIX'in 7. versiyonunda geliştirilmiştir ve ilerileyen yıllarda tar dosyalarının yapısı standartlaştırılmıştır. Her ne kadar tar dosyaları sıkışmış dosyalar olmasa da, tar programı oluşturduğu dosyayı daha sonra sıkıştırabilecek, veya sıkıştırılmış tar dosyalarını açabilecek yeteneklere sahiptir.
tarball
Basit bir tarball dosyası aşağıdaki gibi oluşturulabilir.
Burada 03-debug.txt
ve putty.log
dosyalarını birleştirip, tarball.tar
isimli bir dosya oluşturulmaktadır. -c
parametresi create'in kısaltması olarak, bir tar dosyası oluşturulacağını belirtmektedir. -v
parametresi, hemen her GNU/Linux programında olduğu gibi verbose anlamına gelir, programın yaptığı işlem hakkında bilgi vermesini sağlar. -f
parametresi ise kendisinden sonra dosya isminin belirtileceği anlamıan gelmektedir, file sözcüğünün kısaltmasıdır.
Yukarıdaki örnekteyse, create yerine extract'in kısaltması olan -x
parametresi kullanılmıştır. Tahmin edeceğiniz üzere burada da sadece tarball.tar
dosyası "açılmaktadır".
Eğer tarball.tar
dosyası içinden bütün dosyaları değil de, sadece putty.log
dosyasını çıkarmak istersek, yukarıdaki gibi çıkartılacak dosyayı parametre olarak sağlayabiliriz.
Yukarıdaki gibi, bir tarball içinden sadece belirli bir dosyayı çıkarmak istiyorsak, ilgili tarball'un içeriğini bilmemiz gerekir. Bunun için list'in kısaltması olarak kullanılan -t
parametresini aşağıdaki gibi kullanmak yeterli olacaktır.
Oluşturulan tarball dosyalarında, dosyaların izinleri korunmaz. Mevcut sistemdeki izinleri korumasını istersek, preserve permissions'ın kısaltması olan -p
parametresini de eklemek gerekecektir.
Mevcut tar dosyasına başka dosya eklemek için, append anlamına gelen -r
parametresi kullanılır.
Unutulmaması gereken nokta, tarball dosyasına yeni bir dosya eklemek için, ilgili tarball'un sıkıştırılmış olmaması gerekir. Sıkıştırılmış dosyalara (tar.gz, tar.bz2) sonradan dosya ekleyemezsiniz, sıkıştırma algoritmalarının doğası gereği, dosyayı yeniden oluşturmanız gerekir.
tar.gz
Oluşturulacak tarball dosyasının sıkıştırılmış bir dosya olacağını belirtmek için, daha önce kullandığımız standart parametreler arasına, zip'in kısaltması olarak -z
eklenmesi gerekir.
Benzer şekilde sıkıştırılmış bir dosyayı açacağımız zaman da -z
ile tar programına açacağı dosyanın sıkıştırılmış bir dosya olduğunu belirtmek gerekir.
Bu parametre ile kullanılan algoritma, GNU Zip algoritması olduğu için, aslında arka planda birazdan göreceğimiz gzip
programını kullanır. Bu yüzden genellikle GNU Zip ile sıkıştırılmış tarball dosyalarına .tar.gz
uzantısı verilir.
tar.bz2
Eğer sıkıştırma algoritması olarak GNU Zip yerine bzip2 kullanılmasını istersek, -z
yerine -j
parametresini hem tarball oluşturulurken, hem de açılırken kullanmak gerekir.
Sıkıştırılmış Dosyalar
gzip
GNU Zip dosyaları, sıkıştırma amacıyla kullanılır. Tek dosyayı girdi olarak alır. Dolayısıyla birden fazla dosyanın tek paket halinde sıkıştırılması gerekiyorsa, yukarıda gördüğümüz örneklerdeki gibi, önce tarball oluşturulup, sonra gzip ile sıkıştırmak gerekir.
Aşağıda, tek dosyanın doğrudan sıkıştırılması gerçekleştirilir.
Bu işlemin sonucunda putty.log.gz
isimli bir dosya oluşur ve putty.log
dosyası silinir.
Eğer mevcut dosyanın korunması isteniyorsa, -c
parametresiyle oluşturulan verinin standart çıktıya yazdırılması sağlanabilir. Standart çıktı hakkında detaylı bilgi kitabın ilerleyen bölümlerinde yer almaktadır.
Oluşan bir dosyayı "açmak" içinse, GNU Unzip'in kısaltması olan gunzip
kullanılır.
Veya gzip'in decompress anlamına gelen -d
parametresi kullanılabilir.
bz2
Sıkıştırılmamış dosyayı siler.
tar, gz, bz2 dosyaları için kullanabileceğiniz bir cheat-sheet şurada mevcut.
zip ve unzip
rar ve unrar
Z Komutları
GNU/Linux sistemlerde özellikle log dosyalarının sıkıştırılarak saklanması yaygın tekniklerdir. Sıkıştırılmış bu dosyalar içinde arama yapmak, dosyanın bir kısmını okumak veya dosyalar arası farklılıkları incelemek gerekebilir. Bu tip işlemler için sıkça kullanılan komutların z ile başlayan versiyonları geliştirilmiştir.
zcat
, zless
, zmore
, zgrep
, zegrep
, zdiff
komutlarını bu tip dosyalar üzerinde çalışmak için kullanabilirsiniz.
Last updated