归档文件是指存储在归档文件中的文件,例如 GZIP、RAR 或 7z 文件。归档文件名是归档记录的该已存储文件的名称。这个名称与归档文件本身的文件名是分开的。
例如,gzip 程序会把一个名为 example.png 的文件变成一个名为 example.png.gz 的文件。归档文件获得了新名称,但其中的归档文件名仍然是 example.png。
在其他场景中,“archived”表示文件已从日常使用中移入长期存储。本文介绍的是存储在归档文件内部的文件所使用的这个元数据字段。
哪些文件携带它
在 ExifTool 这个元数据程序中,标签 ArchivedFileName 来自 GZIP、RAR 和 7z 归档文件。对于 GZIP 文件,ExifTool 只读取归档中第一个文件的这些标签。对于 RAR 或 7z 归档,它会读取每个文件,但除非你添加 -a,否则 exiftool 命令只显示第一个名称。
漫画书归档是扩展名不同的普通归档文件。CBR 文件是 RAR 归档,CB7 文件是 7z 归档。因此,页面图片的名称也可能出现在这个字段中。
ZIP 归档也会存储同类名称,但 ExifTool 将其报告为 ZipFileName。ExifTool 还会为一些基于 ZIP 构建的格式报告此标签,例如 DOCX 文档。CBZ 漫画也是一种 ZIP 归档。
数值的来源
归档程序在把文件添加进归档时写入这个名称。在 ZIP 或 RAR 5 归档中,每个已存储文件都有自己的头部,其中包含名称。
GNU gzip 默认会保存原始文件名,除非你使用选项 -n。不是来自具名文件的数据根本没有名称。GZIP 头中的一个标志位用于指示名称是否存在。
该数值的格式
这个值是带扩展名的普通文件名,例如 example.png。在 ZIP 和 RAR 5 归档中,名称还可以包含文件夹路径。正斜杠 / 用来分隔文件夹名称。
ZIP 路径从不会以驱动器号或斜杠开头。GZIP 名称从不包含文件夹,因为 gzip 会移除它们。
每种格式还会规定名称可使用的字符集:
- GZIP:ISO 8859-1,也叫 Latin-1
- ZIP:旧的 IBM 代码页 437,或在位标志指示时使用 UTF-8
- RAR 5:始终使用 UTF-8
代码页 437 将名称限制在原始 MS-DOS 范围内的字符。UTF-8 支持完整的 Unicode 标准,因此可以存储更多语言的字母。
它的重要性
该字段会在你解压之前显示归档内部包含的内容。归档文件本身可以有任意名称,但这个字段给出已存储文件的名称和扩展名。
对于 GZIP 文件,这个值会保留原始名称,即使之后有人重命名 .gz 文件。gunzip 命令默认会忽略存储的名称,但选项 -N 会恢复它。
.tar.gz 文件是由 gzip 压缩的 TAR 归档。如果 gzip 将 TAR 文件作为单独、具名的文件进行压缩,这个值就会是该 TAR 文件的名称。当 tar 程序在同一步中压缩归档时,这个值通常会缺失。
文件名可能泄露隐私信息,例如个人姓名或项目名称。ZIP 加密通常只保护文件内容。
除非归档还使用了单独的中央目录加密功能,否则文件的名称、大小和日期仍然可读。在带加密头的 RAR 5 归档中,保存名称的这些头部也会被加密。