ไฟล์เก็บถาวร TAR (.tar)
POSIX.1-1988 มาตรฐานTape Archive (TAR) เป็นรูปแบบแพ็กเกจที่ใช้กันแพร่หลายใน Unix และ Linux ซึ่งรวมไฟล์ ไดเรกทอรี และข้อมูลเมตาระบบไฟล์บางส่วนไว้ในสตรีมที่ไม่บีบอัด
แปลง ZIP เป็น TAR
ตัวแปลงจาก ZIP เป็น TAR ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ TAR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ 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 (ปัจจุบัน) | ZIP | 7Z | CPIO |
|---|---|---|---|---|
| การบีบอัดข้อมูลแบบเนทีฟ | ไม่มี (เป็นคอนเทนเนอร์สำหรับจัดแพ็กเกจเท่านั้น) | มีการบีบอัด 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) ผ่านลูปฮาร์ดลิงก์แบบวงกลม
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ตรวจสอบเส้นทางไฟล์ในคลังอย่างเข้มงวด และปฏิเสธรายการใดก็ตามที่อ้างอิงไดเรกทอรีระดับบน ('..')
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- 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 ในเว็บเบราว์เซอร์ของคุณโดยตรง
คู่การแปลงไฟล์ TAR ที่เกี่ยวข้อง
การแปลงไฟล์เก็บถาวร ZIP เป็นไฟล์ TAR จะเปลี่ยนคอนเทนเนอร์ไฟล์บีบอัดให้เป็นรูปแบบไฟล์เก็บถาวรแบบเทปที่ไม่บีบอัด ซึ่งเหมาะกับสภาพแวดล้อม Unix
การแปลงไฟล์ TAR เป็น ZIP จะเปลี่ยนคอนเทนเนอร์ Unix ที่ไม่บีบอัดให้เป็นรูปแบบไฟล์บีบอัดที่ใช้กันอย่างแพร่หลาย
การแปลงคลังข้อมูล TAR เป็น GZIP จะรวมคอลเลกชันไฟล์ที่ไม่ได้บีบอัดให้เป็นสตรีมบีบอัดเดียวโดยใช้อัลกอริทึม DEFLATE แบบไม่สูญเสียข้อมูล เพื่อลดขนาดไฟล์ลงอย่างมาก
แยกข้อมูล TAR จากไฟล์ TAR ที่บีบอัดด้วย GZIP เช่น .tar.gz หรือ .tgz