Từ điển

Tên tệp đã lưu trữ là gì?

Tên tệp đã lưu trữ là tên mà một kho lưu trữ GZIP, RAR hoặc 7z ghi nhận cho tệp được lưu bên trong nó. Tên này thường khác với tên của chính kho lưu trữ.

archived-file-name

Tệp đã lưu trữ là tệp được lưu bên trong một gói lưu trữ, chẳng hạn như tệp GZIP, RAR hoặc 7z. Tên tệp đã lưu trữ là tên của tệp được lưu trữ đó, như được ghi lại trong gói lưu trữ. Tên này tách biệt với tên tệp của chính gói lưu trữ.

Ví dụ, chương trình gzip chuyển một tệp có tên example.png thành một tệp có tên example.png.gz. Gói lưu trữ nhận tên mới, nhưng Tên tệp đã lưu trữ bên trong nó vẫn là example.png.

Trong các ngữ cảnh khác, "đã lưu trữ" có nghĩa là tệp được chuyển ra khỏi việc sử dụng hằng ngày sang lưu trữ dài hạn. Bài viết này nói về trường siêu dữ liệu cho các tệp được lưu bên trong một tệp lưu trữ.

Những tệp nào chứa nó

Trong chương trình siêu dữ liệu ExifTool, thẻ ArchivedFileName đến từ các gói lưu trữ GZIP, RAR và 7z. Với một tệp GZIP, ExifTool chỉ đọc các thẻ này cho tệp đầu tiên trong gói. Với gói RAR hoặc 7z, nó đọc mọi tệp, nhưng lệnh exiftool chỉ hiển thị tên đầu tiên trừ khi bạn thêm -a.

Gói truyện tranh thực chất là các gói lưu trữ thông thường với phần mở rộng khác. Tệp CBR là một gói RAR và tệp CB7 là một gói 7z. Vì vậy tên của một ảnh trang có thể xuất hiện trong trường này.

Gói ZIP cũng lưu cùng loại tên này, nhưng ExifTool báo cáo nó dưới dạng ZipFileName. ExifTool cũng báo cáo thẻ này cho một số định dạng xây dựng trên ZIP, chẳng hạn như tài liệu DOCX. Truyện CBZ cũng là một gói ZIP.

Giá trị đến từ đâu

Chương trình nén lưu trữ ghi tên khi nó thêm một tệp vào gói. Trong gói ZIP hoặc RAR 5, mỗi tệp được lưu đều có header riêng, chứa tên tệp.

GNU gzip lưu tên tệp gốc theo mặc định, trừ khi bạn dùng tùy chọn -n. Dữ liệu không xuất phát từ một tệp có tên thì hoàn toàn không có tên. Một bit cờ trong header GZIP cho biết có tên hay không.

Giá trị trông như thế nào

Giá trị là một tên tệp đơn giản kèm theo phần mở rộng, chẳng hạn như example.png. Trong gói ZIP và RAR 5, tên này cũng có thể bao gồm đường dẫn thư mục. Dấu gạch chéo xuôi / dùng để tách tên thư mục.

Đường dẫn ZIP không bao giờ bắt đầu bằng ký tự ổ đĩa hoặc dấu gạch chéo. Tên GZIP không bao giờ bao gồm thư mục, vì gzip loại bỏ chúng.

Mỗi định dạng cũng quy định tập ký tự mà tên có thể sử dụng:

  • GZIP: ISO 8859-1, còn gọi là Latin-1
  • ZIP: IBM Code Page 437 cũ, hoặc UTF-8 khi một bit cờ cho biết như vậy
  • RAR 5: luôn dùng UTF-8

Code Page 437 giới hạn tên trong các ký tự thuộc dải MS-DOS gốc. UTF-8 hỗ trợ toàn bộ tiêu chuẩn Unicode, nên có thể lưu chữ cái của nhiều ngôn ngữ hơn.

Tại sao nó quan trọng

Trường này cho thấy nội dung bên trong một gói lưu trữ trước khi bạn giải nén. Bản thân gói lưu trữ có thể mang bất kỳ tên nào, nhưng trường này cung cấp tên và phần mở rộng của tệp được lưu trữ.

Với tệp GZIP, giá trị giữ lại tên gốc ngay cả khi ai đó đổi tên tệp .gz sau này. Lệnh gunzip mặc định bỏ qua tên được lưu, nhưng tùy chọn -N sẽ khôi phục nó.

Tệp .tar.gz là một gói TAR được nén bằng gzip. Nếu gzip nén tệp TAR như một tệp riêng, có tên, thì giá trị sẽ là tên tệp TAR đó. Khi chương trình tar nén gói lưu trữ trong cùng một bước, giá trị này thường bị thiếu.

Tên tệp có thể để lộ thông tin riêng tư, chẳng hạn như tên người hoặc tên dự án. Mã hóa ZIP thường chỉ bảo vệ nội dung tệp.

Tên, kích thước và ngày tháng của tệp vẫn đọc được trừ khi gói lưu trữ cũng dùng tính năng mã hóa thư mục trung tâm riêng biệt. Trong gói RAR 5 với header được mã hóa, các header chứa tên cũng được mã hóa.