Format Arsip TAR

Format arsip tar menawarkan cara yang andal untuk menyimpan file. Ini mempertahankan data asli byte demi byte, menambahkan header 512 byte di awal. Ukuran file juga disesuaikan agar pas dengan blok 512 byte. Menariknya, header tersebut menyertakan checksum bawaan untuk deteksi kesalahan. Meskipun utilitas tar standar mungkin melewatkan header yang rusak (dan akibatnya file terkait), utilitas tar standar akan terus memproses sisa arsip, memastikan Anda masih dapat mengakses file yang tidak rusak.

Tentang Informasi Arsip TAR

Format file tar, kependekan dari “tape archive”, dibuat oleh utilitas tar di sistem UNIX. Ini berfungsi sebagai arsip untuk menggabungkan file untuk tugas-tugas seperti pencadangan atau distribusi. Tidak seperti format arsip terkompresi, file tar menyimpan banyak file, juga dikenal sebagai tarball, dalam format tidak terkompresi bersama dengan metadata tentang arsip tersebut. Meskipun file tar sendiri tidak dikompresi, file tersebut dapat dikompresi menggunakan utilitas seperti gzip atau bzip2 untuk penyimpanan dan transfer yang efisien.
Karena format file tar itu sendiri tidak menyertakan kompresi bawaan, arsip tar sering kali dikompresi menggunakan utilitas eksternal seperti gzip, bzip2, XZ (memanfaatkan algoritma kompresi 7-Zip / p7zip LZMA / LZMA2), Brotli, Zstandard , dan alat serupa. Kompresi ini membantu mengurangi ukuran arsip agar lebih mudah dibawa dan pencadangan data efisien. File terkompresi yang dihasilkan dari proses ini mungkin memiliki ekstensi tunggal seperti tgz, tbz, txz, tzst, atau ekstensi ganda seperti tar.gz, tar.br, tar.bz2, tar.xz, tar.zst.

Evolusi Format Arsip TAR

Format arsip tar telah berkembang seiring waktu. Fitur baru yang ditambahkan ke utilitas tar sejak tahun 1980an menghasilkan ekstensi format yang menyertakan informasi tambahan untuk meningkatkan fungsionalitas. Format tar awal kurang konsisten dalam cara penyimpanan bidang numerik, tetapi hal ini telah diatasi di versi yang lebih baru untuk meningkatkan portabilitas. Perbaikan ini dimulai dengan standar POSIX pertama untuk format tar pada tahun 1988.
POSIX.1 2001 memperkenalkan format “extracted tar” (juga dikenal sebagai tar.h atau pax). Format ini adalah yang paling fleksibel, menggabungkan fungsionalitas dari spesifikasi tar lainnya. Ini memungkinkan vendor untuk menambahkan fitur khusus menggunakan tag. Meskipun dokumentasi menyoroti bahwa tidak semua implementasi tar dapat menangani format ini dengan sempurna, desainnya memastikan bahwa alat apa pun yang mampu membaca arsip “ustar” juga dapat membaca sebagian besar arsip “posix”. Selain itu, POSIX.1 2001 menghilangkan batasan ukuran file 8 GB sebelumnya untuk arsip tar.

Struktur TAR

Arsip TAR, pada intinya, adalah rangkaian blok data. Blok berukuran tetap ini 512 byte masing-masing disusun secara linier. Untuk menandai akhir arsip, ada dua blok berurutan yang diisi angka nol.
Namun jika dilihat secara logis, arsip TAR adalah serangkaian entri file. Setiap entri terdiri dari beberapa blok, dengan blok pertama selalu menjadi header entri. Blok yang tersisa menyimpan konten file sebenarnya.
Di dalam Header Entri
Header entri bertindak sebagai cetak biru untuk setiap file dalam arsip. Ini berisi informasi berikut

  • Nama File (100 byte): Nama file yang disimpan dalam entri ini.
  • Izin File (8 byte): Izin untuk mengakses file, direpresentasikan sebagai string oktal.
  • ID Pemilik (8 byte): ID pengguna numerik dari pemilik file (format oktal).
  • ID Grup (8 byte): ID grup numerik pemilik file (format oktal).
  • Ukuran File (12 bytes): Ukuran file dalam format oktal.
  • Waktu Modifikasi Terakhir (12 byte): Stempel waktu oktal dari modifikasi file terakhir.
  • Checksum (8 byte): Nilai checksum yang digunakan untuk memverifikasi integritas data header.
  • Jenis File (1 byte): Menunjukkan jenis file yang disimpan (file biasa, tautan keras, atau tautan simbolis).
  • Nama File Tertaut (panjang variabel): Jika entri berupa tautan (keras atau simbolis), bidang ini menyimpan nama file tertaut.

Manfaat format ini

  • Fleksibilitas - TAR adalah format serbaguna yang mampu menyimpan banyak file dan direktori dalam satu file arsip, sehingga cocok untuk berbagai kebutuhan pencadangan dan distribusi.
  • Pelestarian Atribut File TAR menjaga atribut file penting seperti izin, kepemilikan, dan stempel waktu, memastikan bahwa data yang diarsipkan tetap mempertahankan integritas dan kegunaannya.
  • Kesederhanaan - Struktur file TAR sederhana dan lugas, sehingga mudah digunakan dan diproses. Hal ini menyederhanakan pemrograman dan otomatisasi tugas yang berkaitan dengan arsip TAR.

Operasi yang Didukung Arsip TAR

Aspose.ZIP memungkinkan pengguna mengekstrak entri tertentu atau seluruh arsip. Untuk Aspose.ZIP untuk .NET Anda dapat menggunakan TarArchiveClass untuk membuka file .tar.gz dan kemudian mengulangi entri-entrinya, mengekstraknya ke lokasi yang diinginkan. Untuk Aspose.ZIP untuk Java Pendekatan serupa menggunakan TarArchive untuk membuka file .tar.gz dan mengekstrak entri.

File TAR - Struktur Internal

File segmen menyimpan data mentah tentang suatu segmen. Meskipun ada jenis segmen yang berbeda, file TAR hanya membedakan antara segmen data dan segmen massal. Segmen massal langsung disimpan “apa adanya” di file TAR.
Namun, segmen data diperiksa untuk menemukan referensi ke segmen lain atau konten biner mentah. Referensi ini hanya disimpan sebagai daftar pengidentifikasi unik (UUID) dalam segmen data. Segmen yang direferensikan dapat ditempatkan di dalam file TAR saat ini atau secara eksternal.
Referensi internal ditemukan dengan memeriksa indeks file TAR. Referensi eksternal memerlukan alat eksternal untuk menemukan segmen di file TAR lain. Daftar segmen yang direferensikan dalam segmen data disimpan dalam file grafik untuk pengambilan lebih cepat. Daftar ini tetap diurutkan untuk mengoptimalkan proses pencarian.

File TAR - Struktur Internal

Struktur Arsip Dalam

  • Metadata File - Mirip dengan arsip tar, setiap file menyimpan informasi dasar seperti waktu modifikasi dan izin. Namun, bagian ini fleksibel dan memungkinkan penghapusan atau penyertaan detail tambahan seperti daftar kontrol akses (ACL) atau atribut yang diperluas (EA) berdasarkan kebutuhan Anda. Disarankan untuk menyertakan fungsi hash yang kuat (seperti SHA1) untuk file biasa guna memastikan integritas data.
  • Beberapa Aliran Konten - Tidak seperti arsip tradisional, file dapat memiliki lebih dari satu aliran data dalam file data bagian dalam. Ini berguna untuk menyimpan atribut yang diperluas atau sumber daya yang terkait dengan file.
  • Header - File indeks bagian dalam menyimpan header file, mencerminkan header yang tersebar di seluruh file data bagian dalam. Namun, bila disimpan secara terpisah, header indeks harus merujuk pada posisi awal data terkait di dalam file data. Selain itu, entri direktori dalam indeks mencantumkan file yang terkandung di dalamnya dan offset terkait dalam indeks file bagian dalam.
  • Alasan untuk Metadata Duplikat - Pilihan desain ini memastikan streaming/decoding data yang efisien dan akses file acak. Selain itu, metadata terkompresi dengan baik, sehingga menghemat biaya penyimpanan. Pengujian menunjukkan metadata biasanya menempati kurang dari 0,3% ruang penyimpanan, sehingga pertukaran ini bermanfaat.
  • Block Header - Header blok, mirip dengan file luar, berisi informasi ukuran blok dan urutan pengidentifikasi unik.

Contoh Penggunaan TAR

Aspose.ZIP API memungkinkan mengekstrak arsip di aplikasi Anda tanpa memerlukan aplikasi pihak ketiga lainnya. Aspose.ZIP API menyediakan kelas TarArchive untuk bekerja dengan arsip TAR.

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

Informasi tambahan tentang arsip TAR

Orang-orang telah bertanya

1. Apa itu arsip TAR?

Arsip TAR, kependekan dari Tape Archive, adalah format file yang digunakan untuk menggabungkan banyak file dan direktori ke dalam satu file arsip tanpa kompresi. Ini biasanya digunakan untuk tujuan pencadangan dan distribusi dalam sistem berbasis Unix.

2. Apa manfaat arsip TAR?

TAR membanggakan universalitasnya, karena kompatibel dengan sebagian besar sistem operasi dan program arsip, memfasilitasi berbagi dan pertukaran data tanpa hambatan di berbagai platform. Kesederhanaannya terletak pada struktur arsip TAR yang sederhana, memungkinkan pembuatan, ekstraksi, dan manipulasi file dengan mudah. Selain itu, TAR menawarkan efisiensi dengan memungkinkan kompresi dengan alat eksternal seperti gzip atau bzip2, memungkinkan pengguna mengurangi ukuran file dan menghemat ruang penyimpanan dan bandwidth selama transmisi data.

3. Apa saja keterbatasan arsip TAR?

Meskipun TAR adalah format file serbaguna yang biasa digunakan untuk pengarsipan dan mendistribusikan file dalam sistem berbasis Unix, TAR memiliki beberapa keterbatasan yang harus diperhatikan. Pertama, TAR tidak memiliki kemampuan kompresi bawaan, artinya Anda memerlukan alat tambahan seperti gzip atau bzip2 untuk mengurangi ukuran file. Kedua, arsip TAR tidak menawarkan fitur enkripsi asli, jadi jika Anda memerlukan keamanan data, Anda harus bergantung pada alat eksternal untuk perlindungan kata sandi. Terakhir, TAR memiliki dukungan terbatas untuk menjaga atribut file seperti stempel waktu dan izin dari file asli, yang dapat mempengaruhi integritas data yang diarsipkan.