Trình chuyển đổi lưu trữ TAR sang lưu trữ GZIP
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.
So sánh định dạng & Thông số kỹ thuật
| Thông số kỹ thuật | TAR | GZ |
|---|---|---|
| Kiểu MIME | application/x-tar | application/gzip |
| Loại | archive container | compressed stream |
| Nén | uncompressed (often combined with gzip/bzip2/xz) | lossless DEFLATE (LZ77 + Huffman) |
| Thông số chuẩn | POSIX.1-2001 / IEEE 1003.1 ustar | IETF RFC 1952 (GZIP) |
| Phần đầu Magic Bytes | 75 73 74 61 72 (ustar) | 1F 8B |
Tổng quan định dạng & Ứng dụng
Các nhà phát triển phần mềm và quản trị viên hệ thống thường nhóm nhiều tệp và thư mục thành một kho lưu trữ TAR duy nhất để giữ nguyên cấu trúc thư mục và quyền của tệp. Tuy nhiên, các tệp TAR tự chúng không làm giảm kích thước tệp. Điều này tạo ra nhu cầu nén tệp lưu trữ để truyền mạng nhanh hơn và lưu trữ hiệu quả. Bằng cách chuyển đổi vùng chứa TAR thành tệp lưu trữ GZIP, người dùng áp dụng thuật toán DEFLATE cho toàn bộ luồng dữ liệu. Quy trình này là tiêu chuẩn trong môi trường Linux và Unix để phân phối phần mềm, sao lưu hệ thống và triển khai máy chủ. Các công cụ nén tiêu chuẩn như gzip xử lý trực tiếp các byte TAR thô, xuất ra một tệp nhỏ gọn giữ nguyên tất cả siêu dữ liệu ban đầu.
Thông số kỹ thuật & Phân tích codec
Tệp TAR (Tape Archive) có loại MIME application/x-tar và lưu trữ các tệp tuần tự mà không tích hợp sẵn tính năng nén. Nó dựa trên các tiêu chuẩn POSIX và sử dụng các khối tiêu đề đệm bằng số không. Ngược lại, tệp GZIP có loại MIME application/gzip và hoạt động như một vùng chứa luồng nén bằng thuật toán DEFLATE không mất dữ liệu, kết hợp khớp cửa sổ trượt LZ77 và mã hóa Huffman. Chữ ký tệp quy định cách hệ điều hành nhận dạng các định dạng này. Tệp TAR tiêu chuẩn thường chứa các số không ở độ lệch 257 cho chỉ báo ustar. Tệp GZIP bắt đầu bằng chữ ký số magic hai byte riêng biệt, cụ thể là các byte thập lục phân 1F 8B, theo sau là cờ nén và dấu thời gian.
Khả năng tương thích hệ điều hành & trình duyệt
Kho lưu trữ GZIP được hỗ trợ phổ biến trên các hệ điều hành hiện đại, bao gồm Linux, macOS và Windows. Các công cụ dòng lệnh như gzip và gunzip được cài đặt sẵn trên các hệ thống dựa trên Unix, trong khi các phiên bản Windows hiện đại xử lý GZIP gốc trong PowerShell và File Explorer. Trình duyệt web không trích xuất trực tiếp kho lưu trữ GZIP ở phía máy khách mà không có thư viện JavaScript, nhưng máy chủ web thường xuyên sử dụng GZIP để nén lưu lượng HTTP ngay lập tức.
💡 Thông tin hữu ích
Luôn tạo tệp TAR chưa nén trước khi áp dụng nén GZIP. Việc nén các tệp riêng lẻ bên trong vùng chứa TAR mang lại tỷ lệ nén kém vì thuật toán DEFLATE không thể tìm thấy các mẫu giữa các tệp hiệu quả bằng một luồng byte liên tục duy nhất.
So sánh định dạng & Thông số kỹ thuật
Xem xét kho lưu trữ dự án phần mềm 500 MB. Ở định dạng TAR chưa nén, việc truyền tệp này mất khoảng 16,6 giây trên kết nối cáp quang 250 Mbps, 1,3 phút trên kết nối 5G 50 Mbps và gần 14 phút trên kết nối 4G 5 Mbps. Chuyển đổi tệp TAR thành tệp lưu trữ GZIP thường thu nhỏ nó xuống còn 150 MB. Kích thước tệp giảm giúp cắt giảm thời gian truyền xuống 5 giây trên cáp quang, 24 giây trên 5G và 4,2 phút trên 4G.
Câu hỏi thường gặp
Làm thế nào để chuyển đổi lưu trữ TAR sang lưu trữ GZIP mà không làm giảm chất lượng?
Quá trình chuyển đổi sử dụng thuật toán DEFLATE không mất dữ liệu. Nén không mất dữ liệu có nghĩa là mọi byte, quyền tệp và cấu trúc thư mục đều được bảo lưu chính xác như trong tệp TAR ban đầu, với việc mất dữ liệu bằng không trong quá trình giải nén.
Sự khác biệt giữa lưu trữ TAR và lưu trữ GZIP là gì?
Kho lưu trữ TAR là định dạng vùng chứa bó nhiều tệp và thư mục thành một tệp mà không làm giảm kích thước của chúng. Kho lưu trữ GZIP là một luồng nén làm giảm kích thước tệp bằng các thuật toán toán học nhưng thường chỉ xử lý một luồng dữ liệu duy nhất tại một thời điểm, đó là lý do tại sao TAR và GZIP được ghép nối với nhau dưới dạng .tar.gz.