Kho lưu trữ Tar Gzip (.tar.gz)
POSIX.1 Tiêu chuẩnTar Gzip (.tar.gz, còn được gọi là .tgz) là định dạng phân phối phần mềm và đóng gói lưu trữ tiêu chuẩn của thế giới Linux và mã nguồn mở, kết hợp việc đóng gói TAR gốc trên Unix với nén Gzip phổ biến.
Kiểm tra & Siêu dữ liệu
Các hệ điều hành và trình phân tích tệp nhận dạng tệp TAR.GZ bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:
Chữ ký ở đầu tệp (mẫu byte nhận diện)
Các hệ điều hành và trình phân tích tệp nhận dạng tệp TAR.GZ bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:
CHỮ KÝ HEX (OFFSET 0):
1F 8B 08BIỂU DIỄN ASCII: ..\x08
Tiêu chuẩn hóa: POSIX.1 ustar (được bọc trong gzip theo RFC 1952)
Thông số kỹ thuật
| Kiến trúc Container | Luồng kho lưu trữ POSIX ustar / GNU tar được bọc trong vùng chứa nén Gzip RFC 1952 |
| Nén | Đóng gói hai giai đoạn: tuần tự hóa TAR rồi nén DEFLATE |
| Thứ tự byte | Lớp bọc Gzip little-endian chứa các khối tar POSIX hệ bát phân |
| Không gian màu | Không áp dụng (vùng chứa kho lưu trữ) |
| Kênh & Cấu trúc | Cây thư mục Unix nhiều tệp, liên kết tượng trưng, quyền sở hữu tệp và bit quyền truy cập |
| Kích thước tối đa | Kích thước kho lưu trữ truyền phát không giới hạn |
| Độ trong suốt | Bảo toàn cấu trúc hệ thống tệp và dữ liệu, không mất dữ liệu và khớp từng bit |
| Truyền phát & Tăng dần | Có thể truyền phát qua pipe từ đầu đến cuối: giải nén và bung tệp đồng thời trong một lượt |
Ma trận so sánh kỹ thuật: TAR.GZ so với các đối thủ
| Thuộc tính kỹ thuật | TAR.GZ (Hiện tại) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Quyền Unix | Lưu siêu dữ liệu POSIX được kho lưu trữ và công cụ giải nén hỗ trợ | Hạn chế / thường bị mất | Thuộc tính cơ bản được bảo tồn | Siêu dữ liệu POSIX được chọn mà công cụ giải nén hỗ trợ |
| Tỷ lệ nén | Trung bình (Gzip DEFLATE) | Trung bình (ZIP DEFLATE) | Rất cao (LZMA2) | Cao (Bzip2 BWT) |
| Tốc độ giải nén | Nhanh (~300 MB/s) | Nhanh (~300 MB/s) | Trung bình (~100 MB/s) | Chậm (~40 MB/s) |
| Tiêu chuẩn hệ sinh thái Linux | Lựa chọn mặc định phổ biến trong thế giới mã nguồn mở | Mặc định máy tính để bàn người dùng cuối | Được người dùng Windows đam mê ưa chuộng | Bản phát hành mã nguồn Linux từ trước đây |
Các dạng hỏng thường gặp và hướng dẫn khôi phục bằng mã hex
Dòng lệnh báo cáo 'gzip: stdin: invalid compressed data--format violated'.
Nguyên nhân gốc rễ: Byte bị hỏng trong phần bao Gzip hoặc quá trình tải xuống bị cắt cụt.
Khắc phục: Thử khôi phục một phần bằng Trình trích xuất lưu trữ File2File.app hoặc 'tar -izxf broken.tar.gz'.
Phân tích bảo mật và các đường tấn công nhằm vào bộ phân tích cú pháp
Lưu trữ TAR.GZ kết hợp các rủi ro của cả bom nén và các cuộc tấn công duyệt thư mục nếu được giải nén bất cẩn.
Các véc-tơ tấn công đã biết
- Khuếch đại theo kiểu bom nén, trong đó một tệp .tar.gz nhỏ mở rộng thành hàng terabyte số không.
- Duyệt thư mục (ví dụ: '../../root/.ssh/authorized_keys') ghi đè các tệp có đặc quyền.
- Tạo nút thiết bị độc hại trong quá trình giải nén dưới quyền root.
Biện pháp phòng thủ tốt nhất: Giải nén các tệp lưu trữ dưới quyền người dùng không có đặc quyền và kiểm tra và chuẩn hóa mọi đường dẫn tệp đích để ngăn tấn công duyệt thư mục.
Nguồn gốc lịch sử và các cột mốc
Ưu điểm & Lợi ích chính
- Các dự án phần mềm thường phát hành kho mã nguồn dưới dạng .tar.gz vì TAR nhóm cây thư mục còn Gzip nén luồng.
- .tar.gz có thể ghi quyền và liên kết tượng trưng trong lớp TAR. Việc khôi phục tùy thuộc công cụ giải nén và hệ điều hành đích, vì vậy hãy kiểm tra quyền sau khi giải nén trên nền tảng khác.
- Hoàn toàn có thể xử lý theo luồng: có thể tải xuống, giải nén và mở gói qua các đường ống mạng mà không cần ghi tệp tạm thời vào đĩa.
Hạn chế & Nhược điểm kỹ thuật
- Giải nén một tệp duy nhất đòi hỏi phải giải nén toàn bộ lưu trữ lên đến vị trí của tệp đó.
- Tỷ lệ nén thấp hơn các lựa chọn thay thế hiện đại như .tar.xz hoặc .tar.zst.
- Kém thuận tiện hơn trên các hệ thống Windows cũ so với định dạng ZIP được hỗ trợ rộng rãi.
Thông tin kỹ thuật thú vị
- Trên hệ thống MS-DOS có giới hạn tên tệp 8.3, '.tar.gz' được rút gọn thành '.tgz'.
- Mỗi khi bạn chạy 'npm install', npm sẽ tải xuống và giải nén các gói .tgz (tar.gz) ở chế độ nền.
- Người dùng Linux thường ghi nhớ lệnh giải nén tệp tar.gz bằng mẹo 'eXtract Ze File': tar -xzf file.tar.gz.
Các câu hỏi kỹ thuật thường gặp
Sự khác biệt giữa .tar.gz và .zip là gì?
.zip lưu tệp cùng thư mục trung tâm, còn .tar.gz bọc luồng TAR bằng Gzip. Việc giữ siêu dữ liệu tùy thuộc kho lưu trữ và cài đặt giải nén.
.tgz có giống với .tar.gz không?
Có. .tgz đơn giản là phần mở rộng tệp 3 chữ cái viết tắt của .tar.gz, được tạo ra ban đầu cho các hệ thống điều hành có giới hạn tên tệp ngắn 8.3 như DOS.
Làm cách nào để giải nén tệp .tar.gz trên Windows?
Bạn có thể giải nén các tệp .tar.gz trực tiếp trong trình duyệt web của mình bằng File2File.app mà không cần phải cài đặt WinRAR hay 7-Zip.