Thật không may, để giải nén thành viên duy nhất của .tar.gzkho lưu trữ, bạn phải xử lý toàn bộ kho lưu trữ và bạn không thể làm gì nhiều để khắc phục nó.
Đây là nơi lưu trữ .zip(và một số định dạng khác như .rar) hoạt động tốt hơn nhiều, vì zipđịnh dạng có thư mục trung tâm của tất cả các tệp có trong đó với phần bù trực tiếp chỉ vào giữa ziptệp, vì vậy các thành viên lưu trữ có thể được trích xuất nhanh chóng mà không cần xử lý toàn bộ.
Bạn có thể hỏi tại sao xử lý .tar.gzquá chậm?
.tar.gz(thường được rút ngắn là .tgz) chỉ đơn giản là .tarlưu trữ nén với gzipmáy nén. gziplà máy nén trực tuyến chỉ có thể làm việc với một tập tin. Nếu bạn muốn nhận bất kỳ phần nào của gzipluồng, bạn phải giải nén toàn bộ và đây là điều thực sự giết chết nó .tar.gz(và cho .tar.bz2, .tar.xzvà các định dạng tương tự khác dựa trên .tar).
.tarđịnh dạng thực sự rất, rất đơn giản. Nó chỉ đơn giản là luồng của các tiêu đề tệp hoặc thư mục 512 byte (tên, kích thước, v.v.), mỗi tiêu đề được theo sau bởi nội dung tệp hoặc thư mục (được đệm vào kích thước khối 512 với 0 byte nếu cần). Khi bạn quan sát khối 512 hoàn toàn null cho một tiêu đề, điều này có nghĩa là kết thúc .tarlưu trữ.
Một số người nghĩ rằng ngay cả .tarcác thành viên lưu trữ không thể được truy cập nhanh chóng, nhưng điều này không hoàn toàn đúng. Nếu .tarkho lưu trữ chứa một vài tệp lớn, bạn thực sự có thể nhanh chóng tìm kiếm tiêu đề tiếp theo và do đó bạn có thể tìm thấy thành viên lưu trữ cần thiết trong vài lần tìm kiếm (nhưng vẫn có thể yêu cầu nhiều tìm kiếm như có thành viên lưu trữ). Nếu .tarkho lưu trữ của bạn chứa rất nhiều tệp nhỏ, điều này có nghĩa là việc truy xuất thành viên nhanh chóng trở nên không thể thực hiện được ngay cả đối với việc không nén .tar.