Tệp nén TAR (.tar)
POSIX.1-1988 Tiêu chuẩnTape Archive (TAR) là định dạng đóng gói tệp phổ biến trên Unix và Linux, nhóm nhiều tệp, thư mục và siêu dữ liệu hệ thống tập tin thành một luồng chưa nén duy nhất được thiết kế để sao lưu băng từ và phân phối phần mềm.
Chuyển đổi ZIP sang TAR
Trình chuyển đổi từ ZIP sang TAR miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạ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 bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:
Chữ ký tiêu đề ở cấp độ Byte (Magic Bytes)
Các hệ điều hành và trình phân tích tệp nhận dạng tệp TAR bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:
CHỮ KÝ HEX (OFFSET 257):
75 73 74 61 72BIỂU DIỄN ASCII: ustar
Tiêu chuẩn hóa: POSIX.1-1988 (ustar) / POSIX.1-2001 (pax)
Thông số kỹ thuật
| Kiến trúc Container | Sequence of 512-byte blocks: 512-byte file header followed by file data rounded up to 512 bytes, ending with two zero blocks |
| Nén | Uncompressed archive container (designed to be piped into gzip, bzip2, xz, or zstd) |
| Thứ tự byte Endianness | Octal ASCII string fields; big-endian numeric extensions |
| Không gian màu | N/A (Archive Container) |
| Kênh & Cấu trúc | Unix file directory tree, symlinks, hardlinks, character/block devices, and FIFO pipes |
| Kích thước tối đa | 8 GB limit in classic ustar; practically unlimited in modern PAX format |
| Độ trong suốt | Full preservation of POSIX file permissions, owner UID/GID, access times, and extended attributes |
| Truyền phát & Tăng dần | Sequential stream-oriented design: can be written directly to physical magnetic tape drives |
Ma trận so sánh kỹ thuật: TAR so với các đối thủ
| Thuộc tính kỹ thuật | TAR (Hiện tại) | ZIP | 7Z | CPIO |
|---|---|---|---|---|
| Nén gốc | Không có (chỉ là vùng chứa đóng gói thuần túy) | Tích hợp nén Deflate | Tích hợp nén LZMA/LZMA2 | Không có (chỉ là vùng chứa đóng gói thuần túy) |
| Bảo tồn quyền Unix | 100% thuộc tính POSIX, liên kết mềm, UID/GID | Hỗ trợ quyền Unix hạn chế | Bảo tồn quyền cơ bản | 100% thuộc tính POSIX |
| Giải nén trực tuyến | Giải nén phát trực tuyến đầy đủ từ các đường ống | Yêu cầu đọc thư mục trung tâm tại EOF | Yêu cầu đọc tiêu đề kết thúc | Giải nén phát trực tuyến đầy đủ |
| Truy cập ngẫu nhiên vào các tệp | Chậm (quét tuần tính tuyến tính) | Tức thì (tra cứu thư mục trung tâm) | Trung bình (tra cứu chỉ mục) | Chậm (quét tuần tự tuyến tính) |
Các chế độ hỏng hóc phổ biến & Hướng dẫn khôi phục Hex
Lỗi giải nén: 'tar: Skipping to next header' hoặc 'A lone zero block at X'.
Nguyên nhân gốc rễ: Căn chỉnh khối 512 byte bị hỏng hoặc luồng bị chấm dứt sớm.
Khắc phục: Giải nén bằng 'tar -i' để bỏ qua các khối bị hỏng hoặc sửa chữa bằng Công cụ Tar File2File.
Phân tích bảo mật & Các vectơ tấn công bộ phân tích cú pháp
Trình trích xuất TAR phải làm sạch đường dẫn tệp để ngăn chặn việc ghi đè tệp tùy ý thông qua các cuộc tấn công duyệt thư mục.
Các Véc-tơ Tấn công Đã biết
- Duyệt thư mục kiểu 'Slip' (ví dụ: '../etc/passwd') ghi đè lên các tệp hệ thống quan trọng trong quá trình giải nén.
- Điều kiện tranh chấp liên kết mềm tạo ra liên kết mềm đến các thư mục hệ thống theo sau là việc ghi tệp.
- Từ chối dịch vụ thông qua các vòng lặp liên kết cứng vòng tròn.
Thực tiễn Tốt nhất về Phòng thủ:
Nguồn gốc lịch sử & Các cột mốc
Ưu điểm & Lợi ích chính
- Bảo toàn trung thực độ trung thực của hệ thống tập tin Unix hoàn chỉnh: quyền POSIX, liên kết mềm (symlink), liên kết cứng (hardlink) và quyền sở hữu.
- Thiết kế hướng băng từ có thể phát trực tuyến: có thể giải nén trực tiếp từ đường ống mạng mà không cần tìm kiếm đến cuối tệp.
- Tiêu chuẩn phổ quát trên tất cả các máy chủ Linux, hình ảnh container (Docker/OCI) và các bản phân phối phần mềm Unix.
Hạn chế & Nhược điểm kỹ thuật
- Không nén gốc: tệp .tar không nén có kích thước xấp xỉ tổng kích thước của các tệp thô kết hợp lại.
- Truy cập ngẫu nhiên chậm: giải nén một tệp đơn lẻ từ giữa một tệp tar lớn đòi hỏi phải quét từ đầu.
- Các tiêu đề ustar cũ cắt ngắn tên tệp dài hơn 100 ký tự (đã được giải quyết trong tar PAX/GNU hiện đại).
Thông tin kỹ thuật thú vị
- Byte ma thuật 'ustar' nằm ở vị trí byte 257 bên trong mỗi khối tiêu đề 512 byte.
- TAR ban đầu được viết để điều khiển vật lý các ổ đĩa băng cuộn 9 rãnh.
- Hình ảnh container Docker và OCI thực chất là các tập hợp chồng các lưu trữ .tar tiêu chuẩn chứa sự khác biệt của hệ thống tệp gốc.
Các câu hỏi kỹ thuật thường gặp
Tại sao tệp .tar của tôi không được nén?
TAR chỉ là một công cụ lưu trữ (nó gộp các tệp lại thành một tệp duy nhất) và bản thân nó không thực hiện nén dữ liệu. Để nén lại, hãy kết hợp nó với gzip để tạo ra tệp .tar.gz.
Sự khác biệt giữa ustar và GNU tar là gì?
Ustar là tiêu chuẩn POSIX năm 1988 với giới hạn tên tệp 100 ký tự, trong khi GNU tar là định dạng mở rộng hỗ trợ độ dài đường dẫn không giới hạn và các tệp thưa (sparse files).
Làm cách nào để mở tệp .tar trên Windows?
Windows 10 và 11 hỗ trợ tar nguyên bản thông qua dòng lệnh ('tar -xf file.tar'), hoặc bạn có thể giải nén trực quan bằng File2File.app trực tiếp trên trình duyệt web.
Các cặp chuyển đổi TAR liên quan
Việc chuyển đổi tệp lưu trữ ZIP sang tệp lưu trữ TAR giúp biến đổi một vùng chứa tệp được nén thành định dạng tệp lưu trữ băng từ chưa nén phù hợp với môi trường Unix.
Việc chuyển đổi tệp lưu trữ TAR sang tệp lưu trữ ZIP giúp biến đổi một vùng chứa Unix chưa nén thành định dạng tệp nén có thể truy cập rộng rãi.
Chuyển đổi lưu trữ TAR thành lưu trữ GZIP để bọc một tập hợp tệp chưa nén thành một luồng nén duy nhất bằng thuật toán DEFLATE không mất dữ liệu nhằm giảm đáng kể kích thước tệp.
Chuyển đổi tệp nén GZIP thành tệp lưu trữ TAR để loại bỏ lớp nén, làm lộ ra tập hợp các tệp và thư mục thô, chưa nén.