ไฟล์เก็บถาวร TAR (.tar)

POSIX.1-1988 มาตรฐาน

Tape Archive (TAR) เป็นรูปแบบแพ็กเกจที่ใช้กันแพร่หลายใน Unix และ Linux ซึ่งรวมไฟล์ ไดเรกทอรี และข้อมูลเมตาระบบไฟล์บางส่วนไว้ในสตรีมที่ไม่บีบอัด

แปลง ZIP เป็น TAR

ตัวแปลงจาก ZIP เป็น TAR ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ

ตรวจสอบไฟล์และข้อมูลเมตา

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ TAR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
รับประกันความเป็นส่วนตัวโดยไม่มีการส่งข้อมูลผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวระดับไบต์

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ TAR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

ลายเซ็น HEX (OFFSET 257):

75 73 74 61 72

การแสดงผลรูปแบบ ASCII: ustar

มาตรฐาน: POSIX.1-1988 (ustar) / POSIX.1-2001 (pax)

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์ลำดับบล็อกขนาด 512 ไบต์: ส่วนหัวไฟล์ 512 ไบต์ตามด้วยข้อมูลไฟล์ที่ปัดขนาดขึ้นเป็น 512 ไบต์ และลงท้ายด้วยบล็อกศูนย์สองบล็อก
การบีบอัดคอนเทนเนอร์ไฟล์เก็บถาวรแบบไม่บีบอัด (ออกแบบให้ส่งต่อเข้า gzip, bzip2, xz หรือ zstd)
การจัดลำดับไบต์ฟิลด์สตริง ASCII ฐานแปด; ส่วนขยายตัวเลขแบบ Big-Endian
พื้นที่สีไม่เกี่ยวข้อง (คอนเทนเนอร์ไฟล์เก็บถาวร)
ช่องสัญญาณและโครงสร้างโครงสร้างไดเรกทอรีไฟล์ Unix, ลิงก์สัญลักษณ์, ลิงก์ถาวร, อุปกรณ์อักขระ/บล็อก และ FIFO pipes
ขนาดสูงสุดจำกัดที่ 8 GB ใน ustar คลาสสิก; แทบไม่จำกัดในรูปแบบ PAX สมัยใหม่
ความโปร่งใสรักษาสิทธิ์ไฟล์ POSIX, UID/GID เจ้าของ, เวลาเข้าถึง และแอตทริบิวต์เพิ่มเติมไว้อย่างครบถ้วน
การสตรีมและแบบโปรเกรสซีฟออกแบบให้ทำงานกับสตรีมตามลำดับ: เขียนลงไดรฟ์เทปแม่เหล็กจริงได้โดยตรง

ตารางเปรียบเทียบทางเทคนิค: TAR กับคู่แข่ง

คุณลักษณะทางเทคนิคTAR (ปัจจุบัน)ZIP7ZCPIO
การบีบอัดข้อมูลแบบเนทีฟไม่มี (เป็นคอนเทนเนอร์สำหรับจัดแพ็กเกจเท่านั้น)มีการบีบอัด Deflate ในตัวมีการบีบอัด LZMA/LZMA2 ในตัวไม่มี (เป็นคอนเทนเนอร์สำหรับจัดแพ็กเกจเท่านั้น)
การรักษาค่าสิทธิ์ Unixแอตทริบิวต์ POSIX ที่เลือก ลิงก์สัญลักษณ์ และ UID/GIDรองรับสิทธิ์ Unix จำกัดคงสิทธิ์พื้นฐานไว้แอตทริบิวต์ POSIX ที่เลือก
การแตกไฟล์แบบสตรีมมิ่งแตกไฟล์จากไพป์ได้ตลอดทั้งสตรีมต้องอ่านไดเรกทอรีกลางที่ EOFต้องอ่านส่วนหัวส่วนท้ายการแตกไฟล์แบบสตรีมเต็มรูปแบบ
การเข้าถึงไฟล์แบบสุ่มช้า (การสแกนเชิงเส้นตามลำดับ)ทันที (ค้นหาไดเรกทอรีกลาง)ปานกลาง (ค้นหาดัชนี)ช้า (การสแกนเชิงเส้นตามลำดับ)

รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex

ข้อผิดพลาดในการแตกไฟล์: 'tar: Skipping to next header' หรือ 'A lone zero block at X'

สาเหตุหลัก: การจัดตำแหน่งบล็อกขนาด 512 ไบต์เสียหาย หรือการสิ้นสุดสตรีมก่อนกำหนด

การกู้คืน: แตกไฟล์ด้วยคำสั่ง 'tar -i' เพื่อข้ามบล็อกที่เสียหาย หรือซ่อมแซมด้วยเครื่องมือ File2File.app Tar Tool

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

เครื่องมือแตกไฟล์ TAR ต้องตรวจสอบเส้นทางไฟล์ให้ปลอดภัย เพื่อป้องกันการเขียนทับไฟล์ใดก็ได้ในระบบผ่านการโจมตีแบบ path traversal

เวกเตอร์การโจมตีที่ทราบ

  • การโจมตีแบบ path traversal ชนิด 'Slip' (เช่น '../etc/passwd') ซึ่งเขียนทับไฟล์ระบบที่สำคัญระหว่างการแตกไฟล์
  • race condition ของซิมลิงก์ที่สร้างซิมลิงก์ไปยังไดเรกทอรีระบบ แล้วตามด้วยการเขียนไฟล์
  • การปฏิเสธการให้บริการ (Denial of service) ผ่านลูปฮาร์ดลิงก์แบบวงกลม

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ตรวจสอบเส้นทางไฟล์ในคลังอย่างเข้มงวด และปฏิเสธรายการใดก็ตามที่อ้างอิงไดเรกทอรีระดับบน ('..')

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2001มาตรฐาน IEEE POSIX.1-2001 ได้แนะนำมาตรฐาน PAX (Portable Archive Interchange) เพื่อทลายข้อจำกัดขนาด 8 GB แบบเดิม
1988มาตรฐาน IEEE POSIX ได้กำหนดมาตรฐานรูปแบบส่วนหัว 'ustar' (Unix Standard Tar)
1979เปิดตัวครั้งแรกใน Version 7 Unix (V7) โดย Bell Labs เพื่อเขียนโครงสร้างต้นไม้ของไฟล์ลงในไดรฟ์เทปแม่เหล็ก

ข้อได้เปรียบและจุดเด่นสำคัญ

  • TAR บันทึกสิทธิ์ Unix ลิงก์สัญลักษณ์ และ ID เจ้าของได้ โปรดตรวจสอบว่าเครื่องมือแตกไฟล์กู้คืนข้อมูลเหล่านี้หรือไม่ โดยเฉพาะเมื่อแตกไฟล์บน Windows หรือระบบที่มีกฎสิทธิ์ต่างกัน
  • การออกแบบที่รองรับการสตรีมและเหมาะกับการจัดเก็บบนเทป: สามารถแตกไฟล์ได้โดยตรงจากไพป์เครือข่าย (network pipe) โดยไม่ต้องค้นหาไปยังท้ายไฟล์
  • ตัวจัดการแพ็กเกจ Linux และเครื่องมือคอนเทนเนอร์มักแจกจ่ายไฟล์ในไฟล์เก็บ TAR ซึ่งมักบีบอัดเป็น .tar.gz หรือ .tar.zst

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • ไม่มีการบีบอัดในตัว: ไฟล์ .tar ที่ไม่ได้บีบอัดจะมีขนาดใกล้เคียงกับไฟล์ดิบรวมกัน
  • การเข้าถึงแบบสุ่มทำได้ช้า: การแตกไฟล์เพียงไฟล์เดียวจากตรงกลางของไฟล์ tar ขนาดใหญ่มหาศาล จำเป็นต้องสแกนตั้งแต่ต้นทาง
  • ส่วนหัว ustar แบบเดิมตัดชื่อไฟล์ที่ยาวเกิน 100 ตัวอักษร (ได้รับการแก้ไขแล้วใน PAX/GNU tar สมัยใหม่)

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • ลายเซ็นไฟล์ '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 ในเว็บเบราว์เซอร์ของคุณโดยตรง