รูปแบบไฟล์เก็บถาวร TAR

รูปแบบไฟล์เก็บถาวร tar นำเสนอวิธีการจัดเก็บไฟล์ที่เชื่อถือได้ จะรักษาข้อมูลต้นฉบับแบบไบต์ต่อไบต์ โดยเพิ่มส่วนหัวขนาด 512 ไบต์ที่จุดเริ่มต้น ขนาดไฟล์ยังได้รับการปรับขนาดให้พอดีกับบล็อกขนาด 512 ไบต์อีกด้วย สิ่งที่น่าสนใจคือส่วนหัวมีการตรวจสอบในตัวสำหรับการตรวจจับข้อผิดพลาด แม้ว่ายูทิลิตี้ tar มาตรฐานอาจข้ามส่วนหัวที่เสียหาย (และส่งผลให้ไฟล์ที่เกี่ยวข้องตามมาด้วย) แต่ยูทิลิตี้จะยังคงประมวลผลส่วนที่เหลือของไฟล์เก็บถาวรต่อไป เพื่อให้มั่นใจว่าคุณยังคงสามารถเข้าถึงไฟล์ที่ไม่เสียหายได้

เกี่ยวกับข้อมูลเอกสาร TAR

รูปแบบไฟล์ tar ย่อมาจาก “tape archive” ถูกสร้างขึ้นโดยยูทิลิตี้ tar ในระบบ UNIX โดยทำหน้าที่เป็นไฟล์เก็บถาวรเพื่อรวมไฟล์เข้าด้วยกันสำหรับงานต่างๆ เช่น การสำรองข้อมูลหรือการแจกจ่าย ไฟล์ tar ต่างจากรูปแบบไฟล์เก็บถาวรแบบบีบอัด โดยจะเก็บไฟล์หลายไฟล์หรือที่เรียกว่า tarball ในรูปแบบที่ไม่มีการบีบอัด พร้อมด้วยข้อมูลเมตาเกี่ยวกับไฟล์เก็บถาวร แม้ว่าไฟล์ tar จะไม่ถูกบีบอัด แต่ก็สามารถบีบอัดได้โดยใช้ยูทิลิตี้เช่น gzip หรือ bzip2 เพื่อการจัดเก็บและถ่ายโอนที่มีประสิทธิภาพ
เนื่องจากรูปแบบไฟล์ tar เองไม่มีการบีบอัดในตัว ไฟล์ tar มักจะถูกบีบอัดโดยใช้ยูทิลิตี้ภายนอก เช่น gzip, bzip2, XZ (ใช้อัลกอริธึมการบีบอัด 7-Zip / p7zip LZMA / LZMA2), Brotli, Zstandard และเครื่องมือที่คล้ายกัน การบีบอัดนี้ช่วยลดขนาดของไฟล์เก็บถาวรเพื่อการพกพาที่ง่ายขึ้นและการสำรองข้อมูลที่มีประสิทธิภาพ ไฟล์บีบอัดที่เกิดจากกระบวนการนี้อาจมีนามสกุลเดียว เช่น tgz, tbz, txz, tzst หรือนามสกุลคู่ เช่น tar.gz, tar.br, tar.bz2, tar.xz, tar.zst

วิวัฒนาการของรูปแบบไฟล์เก็บถาวร TAR

รูปแบบไฟล์เก็บถาวร tar มีการพัฒนาอยู่ตลอดเวลา คุณสมบัติใหม่ที่เพิ่มเข้ามาในยูทิลิตี้ tar นับตั้งแต่ทศวรรษ 1980 นำไปสู่ส่วนขยายรูปแบบที่มีข้อมูลเพิ่มเติมเพื่อปรับปรุงฟังก์ชันการทำงาน รูปแบบ tar ในยุคแรกๆ ขาดความสอดคล้องกันในวิธีจัดเก็บช่องตัวเลข แต่ได้รับการแก้ไขในเวอร์ชันหลังๆ เพื่อปรับปรุงความสามารถในการพกพา การปรับปรุงนี้เริ่มต้นด้วยมาตรฐาน POSIX แรกสำหรับรูปแบบ tar ในปี 1988
POSIX.1 2001 นำเสนอรูปแบบ “tar แบบขยาย” (หรือที่เรียกว่า tar.h หรือ pax) รูปแบบนี้มีความยืดหยุ่นมากที่สุด โดยผสมผสานฟังก์ชันการทำงานจากข้อกำหนด tar อื่นๆ ช่วยให้ผู้ขายสามารถเพิ่มคุณสมบัติที่กำหนดเองโดยใช้แท็ก แม้ว่าเอกสารประกอบจะเน้นว่าการใช้งาน tar บางประเภทไม่สามารถจัดการรูปแบบนี้ได้อย่างสมบูรณ์แบบ แต่การออกแบบทำให้มั่นใจได้ว่าเครื่องมือใดๆ ที่สามารถอ่านไฟล์เก็บถาวร “ustar” ก็สามารถอ่านไฟล์เก็บถาวร “posix” ส่วนใหญ่ได้เช่นกัน นอกจากนี้ POSIX.1 2001 ได้ขจัดข้อจำกัดขนาดไฟล์ 8 GB ก่อนหน้านี้สำหรับไฟล์เก็บถาวร tar

โครงสร้างทาร์

แก่นของไฟล์เก็บถาวร TAR คือลำดับของบล็อกข้อมูล บล็อกขนาดคงที่เหล่านี้ 512 ไบต์ แต่ละบล็อกจัดเรียงเป็นเส้นตรง เพื่อทำเครื่องหมายจุดสิ้นสุดของไฟล์เก็บถาวร มีสองบล็อกต่อเนื่องกันซึ่งเต็มไปด้วยเลขศูนย์
อย่างไรก็ตาม เมื่อดูตามตรรกะ ไฟล์เก็บถาวร TAR จะเป็นชุดของรายการไฟล์ แต่ละรายการประกอบด้วยหลายบล็อก โดยบล็อกแรกจะเป็นส่วนหัวของรายการเสมอ บล็อกที่เหลือจะจัดเก็บเนื้อหาไฟล์จริง
ภายในส่วนหัวของรายการ
ส่วนหัวของรายการทำหน้าที่เป็นพิมพ์เขียวสำหรับแต่ละไฟล์ภายในไฟล์เก็บถาวร ประกอบด้วยข้อมูลต่อไปนี้

  • ชื่อไฟล์ (100 ไบต์): ชื่อของไฟล์ที่จัดเก็บไว้ในรายการนี้
  • การอนุญาตไฟล์ (8 ไบต์): การอนุญาตสำหรับการเข้าถึงไฟล์ซึ่งแสดงเป็นสตริงฐานแปด
  • รหัสเจ้าของ (8 ไบต์): รหัสผู้ใช้ที่เป็นตัวเลขของเจ้าของไฟล์ (รูปแบบฐานแปด)
  • Group ID (8 ไบต์): ID กลุ่มตัวเลขของเจ้าของไฟล์ (รูปแบบฐานแปด)
  • ขนาดไฟล์ (12 ไบต์): ขนาดของไฟล์ในรูปแบบฐานแปด
  • เวลาที่แก้ไขล่าสุด (12 ไบต์): การประทับเวลาฐานแปดของการแก้ไขไฟล์ครั้งล่าสุด
  • Checksum (8 ไบต์): ค่า Checksum ที่ใช้ในการตรวจสอบความสมบูรณ์ของข้อมูลส่วนหัว
  • ประเภทไฟล์ (1 ไบต์): ระบุประเภทของไฟล์ที่จัดเก็บ (ไฟล์ปกติ ฮาร์ดลิงก์ หรือลิงก์สัญลักษณ์)
  • ชื่อไฟล์ที่ลิงก์ (ความยาวผันแปร): หากรายการเป็นลิงก์ (ฮาร์ดหรือสัญลักษณ์) ฟิลด์นี้จะจัดเก็บชื่อของไฟล์ที่ลิงก์

ประโยชน์ของรูปแบบนี้

  • ความสามารถรอบด้าน - TAR เป็นรูปแบบอเนกประสงค์ที่สามารถจัดเก็บไฟล์และไดเร็กทอรีหลายไฟล์ไว้ในไฟล์เก็บถาวรไฟล์เดียว ทำให้เหมาะสำหรับความต้องการในการสำรองข้อมูลและการแจกจ่ายที่หลากหลาย
  • การเก็บรักษาคุณลักษณะของไฟล์ TAR จะรักษาคุณลักษณะของไฟล์ที่สำคัญ เช่น สิทธิ์ การเป็นเจ้าของ และการประทับเวลา เพื่อให้มั่นใจว่าข้อมูลที่จัดเก็บถาวรยังคงความสมบูรณ์และความสามารถในการใช้งาน
  • ความเรียบง่าย - โครงสร้างของไฟล์ TAR นั้นเรียบง่ายและตรงไปตรงมา ทำให้ง่ายต่อการทำงานและประมวลผล สิ่งนี้ช่วยลดความยุ่งยากในการเขียนโปรแกรมและการทำงานอัตโนมัติของงานที่เกี่ยวข้องกับไฟล์เก็บถาวร TAR

การดำเนินการที่รองรับ TAR Archive

Aspose.ZIP อนุญาตให้ผู้ใช้แยกรายการเฉพาะหรือไฟล์เก็บถาวรทั้งหมด สำหรับ Aspose.ZIP สำหรับ .NET คุณสามารถใช้ TarArchiveClass เพื่อเปิดไฟล์ .tar.gz จากนั้นวนซ้ำรายการต่างๆ และแยกไฟล์เหล่านั้นไปยังตำแหน่งที่ต้องการ สำหรับ Aspose.ZIP สำหรับ Java วิธีการที่คล้ายกันโดยใช้ TarArchive เพื่อเปิดไฟล์ .tar.gz และแยกรายการ

ไฟล์ TAR - โครงสร้างภายใน

ไฟล์เซ็กเมนต์เก็บข้อมูลดิบเกี่ยวกับเซ็กเมนต์ แม้ว่าจะมีประเภทเซ็กเมนต์ที่แตกต่างกัน ไฟล์ TAR จะแยกความแตกต่างระหว่างข้อมูลและเซ็กเมนต์จำนวนมากเท่านั้น เซ็กเมนต์จำนวนมากจะได้รับการบันทึกโดยตรง “ตามที่เป็น” ในไฟล์ TAR
อย่างไรก็ตาม ส่วนข้อมูลได้รับการตรวจสอบเพื่อค้นหาการอ้างอิงถึงส่วนอื่นๆ หรือเนื้อหาไบนารีดิบ ข้อมูลอ้างอิงเหล่านี้จะถูกจัดเก็บเป็นรายการตัวระบุที่ไม่ซ้ำกัน (UUID) ภายในส่วนของข้อมูล ส่วนที่อ้างอิงสามารถอยู่ในไฟล์ TAR ปัจจุบันหรือภายนอกได้
สามารถค้นหาการอ้างอิงภายในได้โดยการตรวจสอบดัชนีของไฟล์ TAR การอ้างอิงภายนอกต้องใช้เครื่องมือภายนอกเพื่อค้นหาส่วนในไฟล์ TAR อื่น รายการส่วนที่อ้างอิงในส่วนข้อมูลจะถูกจัดเก็บไว้ในไฟล์กราฟเพื่อการเรียกค้นที่รวดเร็วยิ่งขึ้น รายการนี้จะถูกเก็บไว้เพื่อเพิ่มประสิทธิภาพกระบวนการค้นหา

ไฟล์ TAR - โครงสร้างภายใน

โครงสร้างเอกสารเก่าภายใน

  • ข้อมูลเมตาของไฟล์ - คล้ายกับไฟล์เก็บถาวร tar แต่ละไฟล์จะจัดเก็บข้อมูลพื้นฐาน เช่น เวลาในการแก้ไขและการอนุญาต อย่างไรก็ตาม ส่วนนี้มีความยืดหยุ่นและอนุญาตให้ละเว้นหรือรวมรายละเอียดเพิ่มเติม เช่น รายการควบคุมการเข้าถึง (ACL) หรือคุณลักษณะเพิ่มเติม (EA) ตามความต้องการของคุณ ขอแนะนำให้รวมฟังก์ชันแฮชที่รัดกุม (เช่น SHA1) สำหรับไฟล์ปกติเพื่อให้มั่นใจในความสมบูรณ์ของข้อมูล
  • สตรีมเนื้อหาหลายรายการ - ต่างจากไฟล์เก็บถาวรแบบเดิม ไฟล์สามารถมีสตรีมข้อมูลได้มากกว่าหนึ่งสตรีมภายในไฟล์ข้อมูลภายใน สิ่งนี้มีประโยชน์สำหรับการจัดเก็บแอตทริบิวต์เพิ่มเติมหรือทางแยกทรัพยากรที่เกี่ยวข้องกับไฟล์
  • ส่วนหัว - ไฟล์ดัชนีภายในเก็บส่วนหัวของไฟล์ สะท้อนส่วนหัวที่กระจัดกระจายไปทั่วไฟล์ข้อมูลภายใน แต่เมื่อจัดเก็บแยกกัน ส่วนหัวของดัชนีจะต้องอ้างอิงตำแหน่งเริ่มต้นของข้อมูลที่เกี่ยวข้องภายในไฟล์ข้อมูล นอกจากนี้ รายการไดเร็กทอรีในดัชนีจะแสดงรายการไฟล์ที่มีอยู่และออฟเซ็ตที่เกี่ยวข้องภายในดัชนีไฟล์ภายใน
  • เหตุผลสำหรับข้อมูลเมตาที่ซ้ำกัน - ตัวเลือกการออกแบบนี้ช่วยให้มั่นใจได้ทั้งการสตรีม/ถอดรหัสข้อมูลที่มีประสิทธิภาพ และการเข้าถึงไฟล์แบบสุ่ม นอกจากนี้ ข้อมูลเมตายังบีบอัดได้ดี ส่งผลให้มีค่าใช้จ่ายในการจัดเก็บข้อมูลน้อยที่สุด การทดสอบแสดงให้เห็นว่าโดยทั่วไปแล้วข้อมูลเมตาจะใช้พื้นที่จัดเก็บข้อมูลน้อยกว่า 0.3% ทำให้การแลกเปลี่ยนนั้นคุ้มค่า
  • ส่วนหัวของบล็อก - ส่วนหัวของบล็อก คล้ายกับไฟล์ภายนอก ประกอบด้วยข้อมูลขนาดบล็อกและลำดับตัวระบุที่ไม่ซ้ำกัน

ตัวอย่างการใช้ TAR

Aspose.ZIP API ช่วยให้แยกไฟล์เก็บถาวรในแอปพลิเคชันของคุณได้โดยไม่จำเป็นต้องใช้แอปพลิเคชันบุคคลที่สามอื่นๆ Aspose.ZIP API มีคลาส TarArchive เพื่อทำงานกับไฟล์เก็บถาวร 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

ข้อมูลเพิ่มเติมเกี่ยวกับ TAR-archives

มีคนถาม

1. ไฟล์เก็บถาวร TAR คืออะไร

ไฟล์เก็บถาวร TAR ย่อมาจาก Tape Archive เป็นรูปแบบไฟล์ที่ใช้ในการรวมไฟล์และไดเร็กทอรีหลายไฟล์เป็นไฟล์เก็บถาวรไฟล์เดียวโดยไม่มีการบีบอัด โดยทั่วไปจะใช้เพื่อวัตถุประสงค์ในการสำรองและแจกจ่ายในระบบที่ใช้ Unix

2. ประโยชน์ของการเก็บถาวร TAR คืออะไร

TAR นำเสนอความเป็นสากล เนื่องจากเข้ากันได้กับระบบปฏิบัติการและโปรแกรมเก็บถาวรส่วนใหญ่ อำนวยความสะดวกในการแบ่งปันและแลกเปลี่ยนข้อมูลอย่างราบรื่นบนแพลตฟอร์มต่างๆ ความเรียบง่ายอยู่ในโครงสร้างตรงไปตรงมาของไฟล์เก็บถาวร TAR ทำให้สามารถสร้าง แตกไฟล์ และจัดการไฟล์ได้อย่างง่ายดาย นอกจากนี้ TAR ยังมอบประสิทธิภาพด้วยการอนุญาตให้มีการบีบอัดด้วยเครื่องมือภายนอก เช่น gzip หรือ bzip2 ทำให้ผู้ใช้สามารถลดขนาดไฟล์และประหยัดพื้นที่เก็บข้อมูลและแบนด์วิธในระหว่างการส่งข้อมูล

3. ข้อจำกัดบางประการของไฟล์เก็บถาวร TAR คืออะไร

แม้ว่า TAR เป็นรูปแบบไฟล์อเนกประสงค์ที่ใช้กันทั่วไปสำหรับการเก็บถาวรและกระจายไฟล์ในระบบที่ใช้ Unix แต่ก็มีข้อจำกัดบางประการที่ต้องระวัง ประการแรก TAR ไม่มีความสามารถในการบีบอัดในตัว ซึ่งหมายความว่าคุณจะต้องมีเครื่องมือเพิ่มเติม เช่น gzip หรือ bzip2 เพื่อลดขนาดไฟล์ ประการที่สอง การเก็บถาวร TAR ไม่มีคุณลักษณะการเข้ารหัสแบบเนทิฟ ดังนั้น หากคุณต้องการความปลอดภัยของข้อมูล คุณจะต้องพึ่งพาเครื่องมือภายนอกสำหรับการป้องกันด้วยรหัสผ่าน สุดท้ายนี้ TAR มีการสนับสนุนที่จำกัดสำหรับการรักษาคุณลักษณะของไฟล์ เช่น การประทับเวลาและการอนุญาตจากไฟล์ต้นฉบับ ซึ่งอาจส่งผลต่อความสมบูรณ์ของข้อมูลที่จัดเก็บถาวร