先看结论
- TAR 是一种聚合归档格式,用于按顺序保存多个文件及其元数据,通常只打包内容而不进行压缩。
- 使用明确支持 TAR 的归档查看工具。解压前先查看成员列表及元数据,重点检查完整路径、链接目标、条目类型、所有者和权限模式。.tar.gz 或 .tar.bz2 另有独立的压缩层,因此还需要对应的解压缩能力。GNU tar 能处理 V7、ustar、POSIX/pax 和 GNU 系列归档,但历史 TAR 变体之间并不总是相互兼容。
- 解压不可信 TAR 文件时应按中等风险处理。绝对路径、以 ../ 开头或包含 ../ 的成员名、链接、特殊文件条目以及畸形输入都可能带来文件系统写入或解析风险。宜先仅查看列表,不创建文件系统对象,再使用能够阻止危险路径的工具解压到独立目录。能够正常列出内容并不代表其中的数据可信。
TAR 文件:格式说明、打开方法与解压风险
Tape Archive 最初是 Unix 上用于向磁带保存文件和恢复文件的格式。TAR 归档由连续的文件条目组成;POSIX ustar 条目使用 512 字节头部记录路径名、权限、所有者与组标识符、大小、修改时间、校验和、条目类型及链接目标。它还可以表示符号链接、硬链接、特殊文件和稀疏文件。
应根据目标格式能表示的元数据选择 TAR 变体。转换为较旧的 TAR 变体时,长路径名、符号化所有权、特殊文件以及实现专用的稀疏文件元数据可能被拒绝或丢失。转换完成后应核对路径、链接、所有者、权限模式和稀疏文件,而不能只看转换是否成功。
怎么打开
使用明确支持 TAR 的归档查看工具。解压前先查看成员列表及元数据,重点检查完整路径、链接目标、条目类型、所有者和权限模式。.tar.gz 或 .tar.bz2 另有独立的压缩层,因此还需要对应的解压缩能力。GNU tar 能处理 V7、ustar、POSIX/pax 和 GNU 系列归档,但历史 TAR 变体之间并不总是相互兼容。
使用明确支持 TAR 的归档查看工具。解压前先查看成员列表及元数据,重点检查完整路径、链接目标、条目类型、所有者和权限模式。.tar.gz 或 .tar.bz2 另有独立的压缩层,因此还需要对应的解压缩能力。GNU tar 能处理 V7、ustar、POSIX/pax 和 GNU 系列归档,但历史 TAR 变体之间并不总是相互兼容。
应根据目标格式能表示的元数据选择 TAR 变体。转换为较旧的 TAR 变体时,长路径名、符号化所有权、特殊文件以及实现专用的稀疏文件元数据可能被拒绝或丢失。转换完成后应核对路径、链接、所有者、权限模式和稀疏文件,而不能只看转换是否成功。
文件安全
解压不可信 TAR 文件时应按中等风险处理。绝对路径、以 ../ 开头或包含 ../ 的成员名、链接、特殊文件条目以及畸形输入都可能带来文件系统写入或解析风险。宜先仅查看列表,不创建文件系统对象,再使用能够阻止危险路径的工具解压到独立目录。能够正常列出内容并不代表其中的数据可信。
来路不明、文件名带两个后缀,或者内容和扩展名对不上——先停下来核对。
转换格式
应根据目标格式能表示的元数据选择 TAR 变体。转换为较旧的 TAR 变体时,长路径名、符号化所有权、特殊文件以及实现专用的稀疏文件元数据可能被拒绝或丢失。转换完成后应核对路径、链接、所有者、权限模式和稀疏文件,而不能只看转换是否成功。
先复制一份原文件再转换,转完对照看看画质、元数据和排版有没有变。
常见问题
TAR 文件是什么格式,主要用来做什么?
TAR 是按顺序保存多个文件及相关元数据的聚合归档格式。它最初用于 Unix 的磁带文件保存与恢复,通常只把内容打包在一起,并不压缩文件内容。
TAR 归档文件怎么打开并先查看内容而不立即解压?
用明确支持 TAR 的归档查看工具打开,先显示成员列表。创建文件前检查完整路径、链接目标、条目类型、所有者和权限模式,再决定是否解压。
Windows 怎么打开 TAR 文件?
使用明确标注支持 TAR 的 Windows 归档工具,先预览条目,再选择独立的目标目录。若文件是 tar.gz 或 tar.bz2,工具还必须支持对应的压缩层。
Mac 怎么打开 TAR 文件?
使用支持 TAR 的归档查看工具或 GNU tar。先列出条目并检查路径和链接,然后解压到独立目录,不要直接写入重要的现有文件夹。
手机怎么打开 TAR 文件?
选择明确支持 TAR 且能显示成员列表的手机归档应用。如果文件名是 tar.gz 或 tar.bz2,应用还需支持相应的独立压缩格式。
TAR 文件无法正确解压怎么办?
可能原因包括输入畸形、读取工具不完全支持该历史 TAR 变体,或归档使用了不受支持的 GNU 稀疏文件表示。检查工具报告的头部或校验和错误,也不要把不完整重建的稀疏文件当作正确结果。
应该选择 TAR 还是 TAR.GZ,二者有什么区别?
TAR 用于打包文件和元数据,通常不压缩内容;TAR.GZ 则在 TAR 外增加独立的 gzip 压缩层,因此打开时同时需要 gzip 解压缩和 TAR 读取能力。
TAR 格式转换时能避免元数据丢失吗?
不一定。转换到旧变体时,长路径、符号化所有权、特殊文件或稀疏文件元数据可能被拒绝或丢失。转换后应逐项核对路径、链接、权限、所有权和稀疏文件。
邮件中的 TAR 附件是否可以安全解压?
不能仅凭扩展名判断安全。不可信 TAR 可能包含绝对路径、../ 路径、链接、特殊文件或畸形数据。应先查看成员列表,并把解压范围限制在独立目标目录内。
所有 TAR 文件在偏移 257 都有 ustar 文件头魔数吗?
不是。POSIX ustar 头部在字节偏移 257 存放 75 73 74 61 72 00,但较旧的 V7 TAR 和部分厂商特定变体可能没有这一标识。
相关格式
资料来源
UNIX Programmer’s Manual, Seventh Edition, Volume 1 — tar(1) · Bell Telephone Laboratories original Seventh Edition UNIX manual
The Open Group Base Specifications Issue 8, IEEE Std 1003.1-2024 — pax and ustar interchange format · IEEE and The Open Group POSIX standard
GNU tar 1.35 Manual · GNU Project official implementation manual
PRONOM x-fmt/265 — Tape Archive Format · The National Archives (UK) authoritative format registry