Tar Gzip 归档 (.tar.gz)
POSIX.1 มาตรฐานTar Gzip (.tar.gz หรือที่รู้จักกันในชื่อ .tgz) คือรูปแบบการแจกจ่ายซอฟต์แวร์มาตรฐานและคลังเก็บข้อมูลของโลก Linux และโอเพนซอร์ส โดยเป็นการผสานการจัดแพ็กเกจ TAR แบบดั้งเดิมของ Unix เข้ากับการบีบอัด Gzip สากล
ตรวจสอบและดู Metadata
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ TAR.GZ โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ TAR.GZ โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
1F 8B 08การแสดงผลรูปแบบ ASCII: ..\x08
มาตรฐาน: POSIX.1 ustar (RFC 1952 gzip wrapped)
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | POSIX ustar / GNU tar archive stream wrapped inside an RFC 1952 Gzip compression container |
| การบีบอัด | Two-stage packaging: TAR serialization followed by DEFLATE compression |
| การจัดลำดับไบต์ (Byte Endianness) | Little-Endian gzip envelope wrapping octal POSIX tar blocks |
| พื้นที่สี | N/A (Archive Container) |
| ช่องสัญญาณและโครงสร้าง | Multi-file Unix directory trees, symlinks, file ownership, and permission bits |
| ขนาดสูงสุด | Unbounded streaming archive size |
| ความโปร่งใส | 100% bit-exact lossless preservation of filesystem structures and data |
| การสตรีมและแบบโปรเกรสซีฟ | End-to-end pipeable streaming: decompress and extract simultaneously in a single pass |
ตารางเปรียบเทียบทางเทคนิค: TAR.GZ กับคู่แข่ง
| คุณลักษณะทางเทคนิค | TAR.GZ (ปัจจุบัน) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| สิทธิ์การใช้งาน Unix | คงค่า POSIX ดั้งเดิม 100% | จำกัด / มักสูญหาย | คงแอตทริบิวต์พื้นฐานไว้ | คงค่า POSIX ดั้งเดิม 100% |
| อัตราส่วนการบีบอัด | ปานกลาง (Gzip DEFLATE) | ปานกลาง (ZIP DEFLATE) | สูงมาก (LZMA2) | สูง (Bzip2 BWT) |
| ความเร็วในการคลายข้อมูล | เร็ว (~300 MB/s) | เร็ว (~300 MB/s) | ปานกลาง (~100 MB/s) | ช้า (~40 MB/s) |
| มาตรฐานระบบนิเวศ Linux | ค่าเริ่มต้นโอเพนซอร์สสากล | ค่าเริ่มต้นเดสก์ท็อปผู้บริโภค | รายการโปรดของผู้ที่ชื่นชอบ Windows | การเผยแพร่ซอร์ส Linux รุ่นเก่า |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
บรรทัดคำสั่งรายงานว่า 'gzip: stdin: invalid compressed data--format violated'
สาเหตุหลัก: ไบต์ที่เสียหายในซองจดหมาย Gzip หรือการดาวน์โหลดที่ไม่สมบูรณ์
การกู้คืน: พยายามกู้คืนบางส่วนโดยใช้ File2File Archive Extractor หรือ 'tar -izxf broken.tar.gz'
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
คลังเก็บข้อมูล TAR.GZ รวมความเสี่ยงของทั้งระเบิดการบีบอัด (compression bombs) และการโจมตีแบบท่องไดเรกทอรี หากแตกไฟล์อย่างไม่ระมัดระวัง
เวกเตอร์การโจมตีที่ทราบ
- การขยายขนาดแบบระเบิด Zip ซึ่งไฟล์ .tar.gz ขนาดเล็กจิ๋วขยายออกเป็นศูนย์ปริมาณเทราไบต์
- การท่องไดเรกทอรี (เช่น '../../root/.ssh/authorized_keys') เขียนทับไฟล์ที่มีสิทธิ์พิเศษ
- การสร้างโหนดอุปกรณ์ที่เป็นอันตรายระหว่างการแตกไฟล์ในฐานะ root
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- มาตรฐานที่ไร้ข้อกังขาสำหรับการเผยแพร่ซอร์สโค้ดโอเพนซอร์ส, แพ็กเกจ Linux และเลเยอร์คอนเทนเนอร์ Docker
- ผสมผสานการรักษาิทธิ์ POSIX และซิมลิงก์ที่สมบูรณ์ เข้ากับการบีบอัด Gzip ที่รวดเร็วและเชื่อถือได้
- สตรีมได้เต็มรูปแบบ: สามารถดาวน์โหลด คลายการบีบอัด และแตกไฟล์ผ่านพายป์เครือข่ายโดยไม่ต้องเขียนไฟล์ชั่วคราวลงในดิสก์
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- การแตกไฟล์เพียงไฟล์เดียวต้องคลายการบีบอัดไฟล์เก็บถาวรทั้งหมดจนถึงตำแหน่งของไฟล์นั้น
- อัตราการบีบอัดต่ำกว่าทางเลือกสมัยใหม่ เช่น .tar.xz หรือ .tar.zst
- ใช้งานได้ไม่ค่อยสะดวกนักบนระบบ Windows รุ่นเก่าเมื่อเทียบกับไฟล์ .zip ทั่วไป
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- บนระบบ MS-DOS ที่มีข้อจำกัดชื่อไฟล์แบบ 8.3 ชื่อ '.tar.gz' ถูกย่อเหลือ '.tgz'
- ทุกครั้งที่คุณรัน 'npm install' ระบบ npm จะดาวน์โหลดและแตกแพ็กเกจ .tgz (tar.gz) เบื้องหลัง
- ผู้ใช้ Linux มักจำคำสั่งแตกไฟล์ tar.gz ด้วยคำย่อช่วยจำ 'eXtract Ze File': tar -xzf file.tar.gz
คำถามทางเทคนิคที่พบบ่อย
ความแตกต่างระหว่าง .tar.gz และ .zip คืออะไร?
.zip จะบีบอัดแต่ละไฟล์ทีละไฟล์และมีไดเรกทอรีกลางอยู่ที่ส่วนท้าย ส่วน .tar.gz จะรวมไฟล์ทั้งหมดเป็นสตรีมเดียวก่อน โดยคงสิทธิ์การใช้งานแบบ Linux และลิงก์สัญลักษณ์ (symlinks) ไว้ครบถ้วน
.tgz เหมือนกับ .tar.gz หรือไม่?
ใช่ .tgz เป็นเพียงนามสกุลไฟล์แบบย่อ 3 ตัวอักษรสำหรับ .tar.gz ซึ่งเดิมทีสร้างขึ้นสำหรับระบบปฏิบัติการที่มีข้อจำกัดชื่อไฟล์แบบ 8.3 สั้นๆ เช่น DOS
ฉันจะแตกไฟล์ .tar.gz บน Windows ได้อย่างไร?
คุณสามารถแตกไฟล์ .tar.gz ได้โดยตรงในเว็บเบราว์เซอร์ของคุณโดยใช้ File2File.app โดยไม่ต้องติดตั้ง WinRAR หรือ 7-Zip