ไฟล์เก็บถาวร TAR (.tar)
POSIX.1-1988 มาตรฐานTape Archive (TAR) เป็นรูปแบบการจัดแพ็กเกจไฟล์บน Unix และ Linux ที่ใช้กันอย่างแพร่หลาย โดยทำหน้าที่รวบรวมไฟล์ ไดเรกทอรี และเมทาดาทาของระบบไฟล์หลายรายการให้อยู่ในสตรีมแบบไม่บีบอัดสตรีมเดียว ซึ่งได้รับการออกแบบมาสำหรับการสำรองข้อมูลลงเทปแม่เหล็กและการแจกจ่ายซอฟต์แวร์
แปลง ZIP เป็น TAR
ตัวแปลงจาก ZIP เป็น TAR ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบและดู Metadata
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ TAR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ TAR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 257):
75 73 74 61 72การแสดงผลรูปแบบ ASCII: ustar
มาตรฐาน: POSIX.1-1988 (ustar) / POSIX.1-2001 (pax)
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | Sequence of 512-byte blocks: 512-byte file header followed by file data rounded up to 512 bytes, ending with two zero blocks |
| การบีบอัด | Uncompressed archive container (designed to be piped into gzip, bzip2, xz, or zstd) |
| การจัดลำดับไบต์ (Byte Endianness) | Octal ASCII string fields; big-endian numeric extensions |
| พื้นที่สี | N/A (Archive Container) |
| ช่องสัญญาณและโครงสร้าง | Unix file directory tree, symlinks, hardlinks, character/block devices, and FIFO pipes |
| ขนาดสูงสุด | 8 GB limit in classic ustar; practically unlimited in modern PAX format |
| ความโปร่งใส | Full preservation of POSIX file permissions, owner UID/GID, access times, and extended attributes |
| การสตรีมและแบบโปรเกรสซีฟ | Sequential stream-oriented design: can be written directly to physical magnetic tape drives |
ตารางเปรียบเทียบทางเทคนิค: TAR กับคู่แข่ง
| คุณลักษณะทางเทคนิค | TAR (ปัจจุบัน) | ZIP | 7Z | CPIO |
|---|---|---|---|---|
| การบีบอัดข้อมูลแบบเนทีฟ | ไม่มี (คอนเทนเนอร์จัดแพ็กเกจล้วน) | มีการบีบอัด Deflate ในตัว | มีการบีบอัด LZMA/LZMA2 ในตัว | ไม่มี (คอนเทนเนอร์จัดแพ็กเกจล้วน) |
| การรักษาค่าสิทธิ์ Unix | แอตทริบิวต์ POSIX 100%, ซิมลิงก์, UID/GID | รองรับสิทธิ์ Unix จำกัด | คงสิทธิ์พื้นฐานไว้ | แอตทริบิวต์ POSIX 100% |
| การแตกไฟล์แบบสตรีมมิ่ง | การแตกไฟล์แบบสตรีมเต็มรูปแบบจากพายป์ | ต้องอ่านไดเรกทอรีกลางที่ EOF | ต้องอ่านส่วนหัวส่วนท้าย | การแตกไฟล์แบบสตรีมเต็มรูปแบบ |
| การเข้าถึงไฟล์แบบสุ่ม | ช้า (การสแกนเชิงเส้นตามลำดับ) | ทันที (ค้นหาไดเรกทอรีกลาง) | ปานกลาง (ค้นหาดัชนี) | ช้า (การสแกนเชิงเส้นตามลำดับ) |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ข้อผิดพลาดในการแตกไฟล์: 'tar: Skipping to next header' หรือ 'A lone zero block at X'
สาเหตุหลัก: การจัดตำแหน่งบล็อกขนาด 512 ไบต์เสียหาย หรือการสิ้นสุดสตรีมก่อนกำหนด
การกู้คืน: แตกไฟล์ด้วยคำสั่ง 'tar -i' เพื่อข้ามบล็อกที่เสียหาย หรือซ่อมแซมด้วยเครื่องมือ File2File Tar Tool
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
เครื่องมือแตกไฟล์ TAR ต้องตรวจสอบเส้นทางไฟล์เพื่อป้องกันการเขียนทับไฟล์ตามอำเภอใจผ่านการโจมตีแบบท่องไดเรกทอรี (directory traversal)
เวกเตอร์การโจมตีที่ทราบ
- การท่องไดเรกทอรีแบบ 'Slip' (เช่น '../etc/passwd') ซึ่งเขียนทับไฟล์ระบบที่สำคัญระหว่างการแตกไฟล์
- สภาวะแย่งชิงของซิมลิงก์ (Symlink race conditions) ที่สร้างซิมลิงก์ไปยังไดเรกทอรีระบบตามด้วยการเขียนไฟล์
- การปฏิเสธการให้บริการ (Denial of service) ผ่านลูปฮาร์ดลิงก์แบบวงกลม
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- คงความสมบูรณ์ของระบบไฟล์ Unix ได้อย่างครบถ้วน: สิทธิ์ POSIX, ซิมลิงก์, ฮาร์ดลิงก์ และความเป็นเจ้าของ
- การออกแบบที่มุ่งเน้นการสตรีมเทป: สามารถแตกไฟล์ได้โดยตรงจากเครือข่ายพายป์ (network pipe) โดยไม่ต้องเลื่อนไปยังจุดสิ้นสุดของไฟล์
- มาตรฐานสากลในเซิร์ฟเวอร์ Linux ทุกรุ่น, อิมเมจคอนเทนเนอร์ (Docker/OCI) และการแจกจ่ายซอฟต์แวร์ Unix
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ไม่มีการบีบอัดในตัว: ไฟล์ .tar ที่ไม่ได้บีบอัดจะมีขนาดใกล้เคียงกับไฟล์ดิบรวมกัน
- การเข้าถึงแบบสุ่มทำได้ช้า: การแตกไฟล์เพียงไฟล์เดียวจากตรงกลางของไฟล์ tar ขนาดใหญ่มหาศาล จำเป็นต้องสแกนตั้งแต่ต้นทาง
- ส่วนหัว ustar แบบเดิมตัดชื่อไฟล์ที่ยาวเกิน 100 ตัวอักษร (ได้รับการแก้ไขแล้วใน PAX/GNU tar สมัยใหม่)
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- ไบต์วิเศษ (magic bytes) 'ustar' อยู่ที่ออฟเซตไบต์ 257 ภายในบล็อกส่วนหัวขนาด 512 ไบต์ทุกบล็อก
- เดิมที TAR ถูกเขียนขึ้นเพื่อควบคุมฮาร์ดแวร์ไดรฟ์เทปแม่เหล็กแบบรีลต่อรีล 9 แทร็ก
- อิมเมจคอนเทนเนอร์ Docker และ OCI คือชุดของคลังเก็บข้อมูลมาตรฐาน .tar ที่ซ้อนกัน ซึ่งบรรจุผลต่างของระบบไฟล์ราก (root filesystem diffs)
คำถามทางเทคนิคที่พบบ่อย
ทำไมไฟล์ .tar ของฉันจึงไม่ถูกบีบอัด?
TAR เป็นเพียงเครื่องมือจัดเก็บไฟล์ (รวมไฟล์หลายไฟล์เป็นไฟล์เดียว) และไม่ได้ทำการบีบอัดในตัว หากต้องการบีบอัด ให้ใช้งานคู่กับ gzip เพื่อสร้างไฟล์ .tar.gz
ความแตกต่างระหว่าง ustar และ GNU tar คืออะไร?
Ustar คือมาตรฐาน POSIX ปี 1988 ที่จำกัดชื่อไฟล์ไว้ที่ 100 ตัวอักษร ในขณะที่ GNU tar เป็นรูปแบบขยายที่รองรับความยาวเส้นทางไม่จำกัดและไฟล์แบบสแปรส์ (sparse files)
ฉันจะเปิดไฟล์ .tar บน Windows ได้อย่างไร?
Windows 10 และ 11 รองรับ tar ในตัวผ่านบรรทัดคำสั่ง ('tar -xf file.tar') หรือคุณสามารถแตกไฟล์แบบเห็นภาพได้ด้วย File2File.app ในเว็บเบราว์เซอร์ของคุณโดยตรง
คู่การแปลงไฟล์ TAR ที่เกี่ยวข้อง
การแปลงไฟล์ ZIP ไปเป็น TAR จะเปลี่ยนคอนเทนเนอร์ไฟล์บีบอัดให้เป็นรูปแบบเทปอาร์ไคร์ฟแบบไม่บีบอัด ซึ่งเหมาะสำหรับสภาพแวดล้อมระบบยูนิกซ์ (Unix)
การแปลงไฟล์ TAR ไปเป็น ZIP จะเปลี่ยนคอนเทนเนอร์ Unix แบบไม่บีบอัดให้เป็นรูปแบบไฟล์บีบอัดที่เข้าถึงได้สากล
การแปลงคลังข้อมูล TAR เป็น GZIP จะรวมคอลเลกชันไฟล์ที่ไม่ได้บีบอัดให้เป็นสตรีมบีบอัดเดียวโดยใช้อัลกอริทึม DEFLATE แบบไม่สูญเสียข้อมูล เพื่อลดขนาดไฟล์ลงอย่างมาก
การแปลงไฟล์บีบอัด GZIP เป็นคลังข้อมูล TAR จะเป็นการถอดชั้นการบีบอัดออกเพื่อให้เห็นชุดไฟล์และโฟลเดอร์ที่ยังไม่บีบอัดและเป็นข้อมูลดิบ