TAR Arşiv Formatı

Tar arşivi formatı, dosyaları depolamak için güvenilir bir yol sunar. Başlangıçta 512 baytlık bir başlık ekleyerek orijinal verileri bayt bayt korur. Dosya boyutları da 512 baytlık bloklara düzgün bir şekilde sığacak şekilde ayarlanmıştır. İlginçtir ki başlık, hata tespiti için yerleşik bir sağlama toplamı içerir. Standart tar yardımcı programı bozuk başlıkları (ve dolayısıyla ilgili dosyaları) atlayabilirken, arşivin geri kalanını işlemeye devam ederek hasarsız dosyalara hâlâ erişebilmenizi sağlar.

TAR Arşiv Bilgileri Hakkında

UNIX sistemlerinde tar yardımcı programı tarafından “teyp arşivi"nin kısaltması olan bir tar dosyası biçimi oluşturulur. Yedekleme veya dağıtım gibi görevler için dosyaları bir araya getiren bir arşiv görevi görür. Sıkıştırılmış arşiv formatlarından farklı olarak tar dosyaları, tarball olarak da bilinen birden fazla dosyayı arşivle ilgili meta verilerle birlikte sıkıştırılmamış bir formatta saklar. Tar dosyalarının kendileri sıkıştırılmamış olsa da verimli depolama ve aktarım için gzip veya bzip2 gibi yardımcı programlar kullanılarak sıkıştırılabilirler.
Tar dosyası formatının kendisi yerleşik sıkıştırma içermediğinden, tar arşivleri genellikle gzip, bzip2, XZ (7-Zip / p7zip LZMA / LZMA2 sıkıştırma algoritmalarını kullanan), Brotli, Zstandard gibi harici yardımcı programlar kullanılarak sıkıştırılır. ve benzeri araçlar. Bu sıkıştırma, daha kolay taşınabilirlik ve verimli veri yedekleme için arşivin boyutunun azaltılmasına yardımcı olur. Bu işlem sonucunda sıkıştırılan dosyalar tgz, tbz, txz, tzst gibi tek uzantılı olabileceği gibi tar.gz, tar.br, tar.bz2, tar.xz, tar.zst gibi çift uzantılı da olabilir.

TAR Arşiv Formatının Gelişimi

Tar arşivi formatı zamanla gelişti. 1980’lerden bu yana tar yardımcı programına eklenen yeni özellikler, gelişmiş işlevsellik için ek bilgiler içeren format uzantılarının ortaya çıkmasına yol açtı. İlk tar formatları, sayısal alanların nasıl depolandığı konusunda tutarlılıktan yoksundu, ancak bu durum, taşınabilirliği artırmak için sonraki sürümlerde ele alındı. Bu gelişme, 1988 yılında tar formatları için ilk POSIX standardıyla başladı.
POSIX.1 2001’de “genişletilmiş tar” formatı (tar.h veya pax olarak da bilinir) tanıtıldı. Bu format, diğer tar spesifikasyonlarındaki işlevleri birleştiren en esnek formattır. Satıcıların etiketleri kullanarak özel özellikler eklemesine olanak tanır. Belgeler tüm tar uygulamalarının bu formatı mükemmel bir şekilde işleyemeyeceğini vurgularken, tasarımı “ustar” arşivlerini okuyabilen herhangi bir aracın çoğu “posix” arşivini de okuyabilmesini sağlar. Ayrıca POSIX.1 2001, tar arşivleri için önceki 8 GB dosya boyutu sınırlamasını da ortadan kaldırdı.

TAR Yapısı

Bir TAR arşivi özünde bir dizi veri bloğundan oluşur. Bu sabit boyutlu blokların her biri 512 baytlık doğrusal olarak düzenlenmiştir. Arşivin sonunu işaretlemek için içi sıfırlarla dolu iki ardışık blok bulunmaktadır.
Ancak mantıksal olarak bakıldığında TAR arşivi bir dizi dosya girişidir. Her giriş birden fazla bloktan oluşur ve ilk blok her zaman giriş başlığıdır. Kalan bloklar gerçek dosya içeriğini saklar.
Giriş Başlığının İçinde
Giriş başlığı, arşivdeki her dosya için bir plan görevi görür. Aşağıdaki bilgileri içerir

  • Dosya Adı (100 bayt): Bu girişte saklanan dosyanın adı.
  • Dosya İzinleri (8 bayt): Sekizlik bir dize olarak temsil edilen dosyaya erişim izinleri.
  • Sahip Kimliği (8 bayt): Dosya sahibinin sayısal kullanıcı kimliği (sekizli format).
  • Grup Kimliği (8 bayt): Dosya sahibinin sayısal grup kimliği (sekizli format).
  • Dosya Boyutu (12 bayt): Dosyanın sekizlik formattaki boyutu.
  • Son Değiştirilme Zamanı (12 bayt): Son dosya değişikliğinin sekizlik zaman damgası.
  • Sağlama toplamı (8 bayt): Başlık verilerinin bütünlüğünü doğrulamak için kullanılan bir sağlama toplamı değeri.
  • Dosya Türü (1 bayt): Saklanan dosyanın türünü belirtir (normal dosya, sabit bağlantı veya sembolik bağlantı).
  • Bağlantılı Dosya Adı (değişken uzunluk): Giriş bir bağlantı ise (sabit veya sembolik), bu alan bağlantılı dosyanın adını saklar.

Bu formatın faydaları

  • Çok yönlülük - TAR, birden fazla dosyayı ve dizini tek bir arşiv dosyasında depolayabilen çok yönlü bir formattır; bu da onu çeşitli yedekleme ve dağıtım ihtiyaçlarına uygun hale getirir.
  • Dosya Niteliklerinin Korunması TAR, izinler, sahiplik ve zaman damgaları gibi önemli dosya niteliklerini koruyarak arşivlenen verilerin bütünlüğünü ve kullanılabilirliğini korumasını sağlar.
  • Basitlik - TAR dosyalarının yapısı basit ve anlaşılır olup, onlarla çalışmayı ve işlenmesini kolaylaştırır. Bu, TAR arşivleriyle ilgili görevlerin programlanmasını ve otomasyonunu basitleştirir.

TAR Arşivi Desteklenen İşlemler

Aspose.ZIP , kullanıcının belirli bir girişi veya arşivin tamamını çıkarmasına olanak tanır. Aspose.ZIP for .NET için TarArchiveClass’ı kullanarak .tar.gz dosyasını açabilir ve ardından girişlerini yineleyerek bunları istediğiniz konuma çıkarabilirsiniz. Aspose.ZIP for Java için .tar.gz dosyasını açmak ve girdileri çıkarmak için TarArchive’ı kullanan benzer yaklaşım.

TAR dosyası - İç Yapı

Segment dosyaları bir segment hakkındaki ham verileri depolar. Farklı segment türleri mevcut olsa da, TAR dosyaları yalnızca veri ve toplu segmentler arasında ayrım yapar. Toplu segmentler doğrudan TAR dosyasına “olduğu gibi” kaydedilir.
Ancak veri bölümleri, diğer bölümlere veya ham ikili içeriğe referanslar bulmak için incelenir. Bu referanslar, veri segmenti içindeki benzersiz tanımlayıcıların (UUID’ler) bir listesi olarak depolanır. Başvurulan bölümler geçerli TAR dosyasında veya harici olarak bulunabilir.
Dahili referanslar TAR dosyasının indeksi kontrol edilerek bulunur. Dış referanslar, segmenti başka bir TAR dosyasında bulmak için harici bir araç gerektirir. Bir veri segmentindeki referans verilen segmentlerin listesi, daha hızlı erişim için grafik dosyasında saklanır. Bu liste, arama sürecini optimize etmek için düzenli tutulur.

TAR dosyası - İç Yapı

İç Arşiv Yapısı

  • Dosya Meta Verileri - Tar arşivine benzer şekilde, her dosya, değişiklik zamanı ve izinler gibi temel bilgileri saklar. Ancak bu bölüm esnektir ve ihtiyaçlarınıza göre erişim kontrol listeleri (ACL’ler) veya genişletilmiş özellikler (EA’lar) gibi ek ayrıntıların çıkarılmasına veya eklenmesine izin verir. Veri bütünlüğünü sağlamak amacıyla normal dosyalar için güçlü bir karma işlevinin (SHA1 gibi) eklenmesi önerilir.
  • Birden Fazla İçerik Akışı - Geleneksel arşivlerden farklı olarak dosyalar, iç veri dosyasında birden fazla veri akışına sahip olabilir. Bu, dosyayla ilişkili genişletilmiş öznitelikleri veya kaynak çatallarını depolamak için kullanışlıdır.
  • Başlıklar - İç dizin dosyası, iç veri dosyasına dağılmış olanları yansıtan dosya başlıklarını içerir. Ancak, ayrı olarak depolandığında, dizin başlıkları, veri dosyası içindeki karşılık gelen verilerin başlangıç ​​konumuna referans vermelidir. Ek olarak, indeksteki dizin girişleri, içerdikleri dosyaları ve iç dosya indeksindeki karşılık gelen uzaklıkları listeler.
  • Yinelenen Meta Verilerin Gerekçesi - Bu tasarım seçimi, hem verimli veri akışı/kod çözme hem de rastgele dosya erişimi sağlar. Ek olarak, meta veriler iyi bir şekilde sıkıştırılarak depolama yükünün minimuma indirilmesi sağlanır. Testler, meta verilerin genellikle depolama alanının %0,3’ünden daha azını kapladığını ve bu da takası değerli kıldığını gösteriyor.
  • Blok Başlıkları - Dış dosyaya benzer şekilde blok başlıkları, blok boyutu bilgilerini ve benzersiz bir tanımlayıcı diziyi içerir.

TAR Kullanma Örnekleri

Aspose.ZIP API, başka herhangi bir 3. parti uygulamaya ihtiyaç duymadan uygulamalarınızdaki arşivleri çıkarmanıza olanak tanır. Aspose.ZIP API, TarArchive sınıfının TAR arşivleriyle çalışmasını sağlar.

Add entries to existing TAR archive via C#

All you need to do is open archive for extraction and add entry to archive .

    using (TarArchive archive = new TarArchive(existing.tar))
    {
        archive.CreateEntry("one_more.bin", data.bin);
        archive.Save(added.tar);
    }

Delete entries from existing TAR archive via .net

Entries of tar archive can be deleted with similar DeleteEntry methods.

using (var archive = new TarArchive("two_files.tar"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.tar");
}

Add files to TAR archive without compression

Tar is a file archival format used to group multiple files and directories into a single archive file without compression , unlike formats like ZIP, RAR and others. To create a tar archive without specifying any compression settings, simply use a TarArchive instance.

    using (FileStream tarFile = File.Open("joint.tar", FileMode.Create))
    {
        FileInfo fi1 = new FileInfo("text.txt");
        FileInfo fi2 = new FileInfo("picture.png");
        using (TarArchive archive = new TarArchive())
        {
            archive.CreateEntry("text.txt", fi1);
            archive.CreateEntry("picture.png", fi2);
            archive.Save(tarFile);
        }
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

TAR arşivleri hakkında ek bilgi

İnsanlar soruyor

1. TAR arşivi nedir?

Teyp Arşivi’nin kısaltması olan TAR arşivi, birden fazla dosya ve dizini sıkıştırma olmadan tek bir arşiv dosyasında paketlemek için kullanılan bir dosya formatıdır. Unix tabanlı sistemlerde yaygın olarak yedekleme ve dağıtım amacıyla kullanılır.

2. TAR arşivlerinin faydaları nelerdir?

TAR, çoğu işletim sistemi ve arşiv programıyla uyumlu olduğundan, farklı platformlar arasında kesintisiz veri paylaşımını ve değişimini kolaylaştırdığı için evrenselliğe sahiptir. Basitliği, dosyaların zahmetsizce oluşturulmasını, çıkarılmasını ve işlenmesini sağlayan TAR arşivlerinin basit yapısında yatmaktadır. Ayrıca TAR, gzip veya bzip2 gibi harici araçlarla sıkıştırmaya izin vererek verimlilik sunarak kullanıcıların dosya boyutunu küçültmesine ve veri iletimi sırasında depolama alanından ve bant genişliğinden tasarruf etmesine olanak tanır.

3. TAR arşivlerinin bazı sınırlamaları nelerdir?

TAR, Unix tabanlı sistemlerde dosyaları arşivlemek ve dağıtmak için yaygın olarak kullanılan çok yönlü bir dosya formatı olsa da, bilinmesi gereken bazı sınırlamalar vardır. İlk olarak, TAR’ın yerleşik sıkıştırma yetenekleri yoktur; bu, dosya boyutlarını azaltmak için gzip veya bzip2 gibi ek araçlara ihtiyacınız olacağı anlamına gelir. İkinci olarak, TAR arşivleri yerel şifreleme özellikleri sunmaz; dolayısıyla veri güvenliğine ihtiyacınız varsa, parola koruması için harici araçlara güvenmeniz gerekir. Son olarak TAR, orijinal dosyalardaki zaman damgaları ve izinler gibi dosya niteliklerinin korunması konusunda sınırlı bir desteğe sahiptir ve bu, arşivlenen verilerin bütünlüğünü etkileyebilir.