TAR (dosya biçimi)

TAR (Kökeni Tape ARchive) ya da bir başka deyişle tarball, açık kaynak kodlu bir belge sıkıştırma ve arşivleme biçimidir. Genel olarak TAR arşivleri *.tar uzantısına sahiptir. Arşiv harici bir programla sıkıştırılmış ise, sıkıştırma programı dosya sonuna kendi uzantısını ekler. (Ör: Tar.gz, Tar.bz2 gibi.) Bu dosya biçimi POSIX.1-1988 ve daha sonra POSIX.1-2001 tarafından standart haline getirilmiştir. Başlangıçta işlenmemiş dosya biçimi olarak geliştirilmiş, disk yedeklemek için kullanılmış, şimdi ise yazılım dağıtımı ve arşivleme için birçok dosyayı tek bir dosyada saklamak için (kullanıcı izinleri, tarih, dizin yapısı gibi dosya sistemi bilgilerini de içeriyor) kullanılmaktadır. Tar biçiminin doğrusal kökleri onun herhangi bir akış üzerinde çalışabilme yeteneği ve parçalı dışa çıkarımdaki yavaşlığında görebilir ki bu son dosyayı açmak için tüm arşivi okumasından ileri gelir. Tar dosyası genellikler tartopu olarak da anılır. Tar, sadece bir şeyi ama en iyi şekilde yap UNIX felsefesini takip eder ki bu da arşivlemektir. İç yapısında sıkıştırmayla ilgili bir ünite olmadığı için harici sıkıştırma programları ile beraber kullanılır. Harici programlar ise sadece bir dosyayı sıkıştırabilir ki Tar ile birleştiklerinde birden fazla dosyayı sıkıştırabilmiş olurlar. == Tar dosya isimleri == Birçok UNIX uygulaması gibi, Tar da bir dosyanın arşiv olduğunu anlamak için belirli bir uzantıya ihtiyaç duymaz. Genel olarak tar arşivleri .tar uzantısına sahiptir. Eğer bir arşiv harici bir programla sıkıştırılmışsa, sıkıştırma programı dosya sonuna kendi uzantısını ekler(.tar.Z,.tar.gz,.tar.bz2 gibi). MSDOS sisteminde böyle uzantılar olamayacağı için değişik ikincil bir uzantı geleneği türedi. Buna göre tar.gz için .tgz, .tbz2 için .tbz ve .tar.Z için .taz uzantıları kullanılmaya başlandı. == Dosya biçimi detayları == Tar dosyası bir veya daha fazla dosyanın birleşiminden oluşur. Her dosyadan önce bir başlık bloğu gelir. Dosya verileri değiştirilmeden yazılır, sadece uzunluğu 512 nin katlarına yuvarlanır ve boşluklar sıfırla doldurulur. Dosya sonu en az iki ardıl sıfır dolu blokla işaretlenir. Eski disklere sadece 512 baytlık bloklar halinde veri kaydedilebiliyordu. Bu yüzden tar dosyası 512 baytlık bloklar halinde düzenlenir. == Dosya başlığı == Başlık bloğu dosya ile ilgili bilgileri içerir. Değişik platformlar arasında taşınabilirliği sağlamak için bu bloktaki bilgi ASCII ile kodlanmıştır. Bu yüzden eğer bütün arşiv yazı dosyasında oluşuyorsa, aslında tar dosyası bir ASCII dosyasıdır. Aşağıdaki tabloda orijinal UNIX tar biçimi tarafından tanımlanmış alanlar gösterilmiştir. Bir alan kullanılmadığında sıfır ile doldurulur. Başlık 512 baytlık olması için sıfırla tamamlanmıştır. Alan Offseti Alan boyutu Alan 0 100 Dosya Adı 100 8 Dosya Modu 108 8 Sahip ID 116 8 Grup ID 124 12 Dosya boyutu(16 lık) 136 12 Son Düzenlenme Tarihi 148 8 Başılğın sağlama toplam(checksum) 156 1 Bağlantı Belirteci 157 100 Bağlanan Dosya İsmi == Program örnekleri == Tar programının temel kullanımı === Tar dosyası oluşturmak için === Tüm .txt uzantılı dosyaları gzip ile sıkıştırıp `dieforwhat.tar.gz` isimli dosya oluşturmak için tar -cvf dieforwhat.tar.gz *.txt === Tar dosyasının içindeki dosyaları sıralamak === tar -tzf dieforwhat.tzr.gz === Dosyaları tar dosyasından çıkarmak === Sıkıştırılmış tar dosyasından tüm dosyaları çıkarmak tar -xzvf dieforwhat.tar.gz Belirli bir klasöre çıkarmak tar -xzvf dieforwhat.tar.gz -C /usr/bin == Bazı Tar işlem ve seçenekleri == —create -c Yeni bir tar arşivi yaratır. \--list -l Arşivin içeriğini listeler. \--extract -x Arşivi dışarıya aktarır. \--file -f Arşiv dosyasının ismini belirler. \--verbose -v Tar'ın üzerinde çalıştığı dosyayı gösterir. \--verbose—verbose -vv Dosyalar hakkında daha detaylı bilgi gösterir. \--append -r Arşivin sonuna dosya ekler. \--update -u Arşivin sonuna sadece yeni dosyaları ekler. \--compare -d Arşiv dosyalarını karşılaştırır. \--concatenate -A Arşiv sonuna yeni arşiv ekler. \--show-defaults Varsayılan tar özelliklerini gösterir. \--files-from= -T Herhangi bir metin dosyasından arşivlenecek dosyaların listesini okur. \--one- file-system Sadece bir dosya sistemini arşivler. \--directory= -C Kendisinden sonra gelen dosya için aktif dizini değiştirir. == Kaynakça == * GNU Tar Sayfası Kategori:Bilgisayar dosya biçimleri Kategori:Dosya sıkıştırma formatları