Tập tin lưu trữ

Một tập tin lưu trữ, còn gọi là tệp lưu trữ hay file lưu trữ (tiếng Anh: "archive file") là một tập tin bao gồm một hoặc nhiều tập tin máy tính cùng với siêu dữ liệu. Tập tin lưu trữ được dùng để gom nhiều tệp dữ liệu thành một tệp duy nhất giúp dễ dàng lưu trữ và di chuyển hoặc đơn giản là để nén chúng lại cho đỡ tốn dung lượng bộ nhớ. Các tập tin lưu trữ thường lưu cấu trúc thư mục, thông tin phát hiện và sửa lỗi, bình luận (comment) và đôi khi cả mã hóa dựng sẵn.

== Ứng dụng ==
Tệp nén đặc biệt hữu ích với việc lưu trữ dữ liệu hệ thống tệp và siêu dữ liệu cùng với nội dung của một tập tin cụ thể, sau đó nó có thể được lưu trữ trên hệ thống hoặc gửi qua các kênh không hỗ trợ hệ thống tệp này (mà chỉ hỗ trợ nội dung tập tin) – ví dụ như gửi một thư mục qua email.

Ngoài mục đích lưu trữ, tệp nén còn thường được dùng trong đóng gói phần mềm để phân phối, vì nội dung phần mềm thường bao gồm nhiều tập tin. Tệp nén khi đó gọi là một gói. Trong khi các tệp nén đều có đinh dạng giống nhau, tệp nén dùng để đóng gói phần mềm phải tuân thủ thêm một số quy định về nội dung, chẳng hạn phải có một tập tin manifest, và đó gọi là định dạng đóng gói. Ví dụ: định dạng deb cho Debian, định dạng JAR cho Java, và định dạng APK cho Android.

== Tính năng ==
Tính năng được hỗ trợ bởi các loại tệp nén khác nhau gồm có: nối tệp, nén dữ liệu, mã hóa, chia tệp (span), checksum, tự khai thác tự cài đặt, thông tin thiết bị và vùng lưu trữ nguồn, thông tin cấu trúc thư mục, ghi chú và mô tả cho gói, các siêu dữ liệu khác. Phần mở rộng tên tệp hoặc phần đầu tệp của chúng là những chỉ số được các định dạng tệp sử dụng. Tệp nén được tạo ra bởi phần mềm nén tệp, phần mềm ghi đĩa quang và phần mềm ảnh đĩa.

== Định dạng nén ==
Định dạng nén là định dạng tệp của tệp nén. Một số định dạng được xác định rõ bởi các tác giả và trở thành quy ước mà nhiều nhà cung cấp và cộng đồng hỗ trợ.

=== Kiểu ===
- Chỉ lưu trữ: định dạng chỉ nối các tệp.
- Chỉ nén: định dạng chỉ nén các tệp.
- Đa chức năng: định dạng có thể nối, nén, mã hóa, tạo thông tin phát hiện lỗi và phục hồi, đóng gói thành một tệp có thể tự giải nén và tự mở rộng.
- Đóng gói phần mềm: định dạng được sử dụng để tạo ra gói phần mềm có thể tự cài đặt các tập tin.
- Ảnh đĩa: định dạng được sử dụng để tạo ra ảnh đĩa của vùng lưu trữ (storage volume).

=== Ví dụ ===
Phần mở rộng tên tệp dùng để phân loại tệp nén bao gồm zip, rar, 7z và tar.

Java cũng giới thiệu một nhóm các phần mở rộng tên tệp như jar và war ("j" là java, "w" là web, còn "ar" là archive – tệp nén). Chúng dùng trong việc triển khai mã bytecode. Đôi khi chúng cũng được dùng để trao đổi tập tin mã nguồn, HTML, XML và các tập tin văn bản khác. Mặc định chúng đều được nén.

== Phát hiện lỗi và phục hồi ==
Tệp nén thường bao gồm phương pháp phát hiện lỗi bit chẵn lẻ và các phương pháp checksum khác; chẳng hạn zip sử dụng kiểm dư chu trình (CRC), RAR có thể bao gồm dữ liệu sửa lỗi dư thừa (gọi là bản ghi phục hồi).

Tệp nén đôi khi kèm theo tệp parchive (PAR) cho phép phát hiện lỗi và phục hồi, đặc biệt trong trường hợp phục hồi tệp mất tích của một tệp nén đa tệp (multi-file archive).

== Xem thêm ==
- Phần mềm nén tệp
- Ảnh đĩa
- Định dạng kho chứa kỹ thuật số – một khái niệm tương tự đối với tập tin đa phương tiện

== Tham khảo ==
- "Application Note on the.ZIP file format" - official white paper published by PKWARE, Inc.
- Tape Archive (.TAR) file format specification- excerpt from File Format List 2.0 by Max Maischein
- "IBM 726 Magnetic tape reader/recorder from IBM Archives
- "1401 Data Processing System" from IBM Archives