先看结论
- Bzip2 是一种对单个文件进行无损二进制压缩的格式,不能自行打包目录或多个具名条目。
- 可用 bunzip2 或 bzip2 -d 解压 BZ2 文件,也可用 bzcat 将解压内容写入标准输出;兼容 libarchive 的应用也能处理该格式。官方解码器支持串联的 Bzip2 数据流。BZ2 通常只压缩一个文件,并不是可以浏览多个条目的归档包。
- Bzip2 不提供加密,其压缩数据流本身也不具备固有的可执行性。但解压后可能出现任意类型的内容,因此打开或执行前仍需单独评估。处理不可信文件时应限制内存和输出量,因为数据解压后可能显著膨胀,且流头中的块大小会决定解压内存需求。
Bzip2 压缩数据(.BZ2、.BZIP2)
Bzip2 由 Julian Seward 创建,使用 Burrows–Wheeler 块排序和 Huffman 编码。数据流以四字节头开始,随后是零个或多个独立压缩块,并以包含完整未压缩数据流 32 位 CRC 的结束标记收尾。压缩块大小为 100,000 至 900,000 字节,并记录在流头中。
将 BZ2 转为其他压缩格式时,应先解压,再使用目标压缩器重新压缩。若目标压缩同样无损,可保留原始载荷,但不会保留原有的 Bzip2 表示,包括所选块大小、压缩块和 CRC 布局。
怎么打开
可用 bunzip2 或 bzip2 -d 解压 BZ2 文件,也可用 bzcat 将解压内容写入标准输出;兼容 libarchive 的应用也能处理该格式。官方解码器支持串联的 Bzip2 数据流。BZ2 通常只压缩一个文件,并不是可以浏览多个条目的归档包。
可用 bunzip2 或 bzip2 -d 解压 BZ2 文件,也可用 bzcat 将解压内容写入标准输出;兼容 libarchive 的应用也能处理该格式。官方解码器支持串联的 Bzip2 数据流。BZ2 通常只压缩一个文件,并不是可以浏览多个条目的归档包。
将 BZ2 转为其他压缩格式时,应先解压,再使用目标压缩器重新压缩。若目标压缩同样无损,可保留原始载荷,但不会保留原有的 Bzip2 表示,包括所选块大小、压缩块和 CRC 布局。
文件安全
Bzip2 不提供加密,其压缩数据流本身也不具备固有的可执行性。但解压后可能出现任意类型的内容,因此打开或执行前仍需单独评估。处理不可信文件时应限制内存和输出量,因为数据解压后可能显著膨胀,且流头中的块大小会决定解压内存需求。
来路不明、文件名带两个后缀,或者内容和扩展名对不上——先停下来核对。
转换格式
将 BZ2 转为其他压缩格式时,应先解压,再使用目标压缩器重新压缩。若目标压缩同样无损,可保留原始载荷,但不会保留原有的 Bzip2 表示,包括所选块大小、压缩块和 CRC 布局。
先复制一份原文件再转换,转完对照看看画质、元数据和排版有没有变。
常见问题
BZ2 文件是什么格式,主要用来做什么?
BZ2 文件是用于压缩单个文件的无损二进制 Bzip2 数据流。它本身不能将目录或多个具名文件打包在一起。
BZIP2 压缩文件怎么打开?
可运行 bunzip2 或 bzip2 -d 解压,也可用 bzcat 把内容写到标准输出,或者选用兼容 libarchive 的应用。
Windows 怎么打开 BZ2 文件?
使用 Windows 版本的 bunzip2 或 bzip2 -d,或者兼容 libarchive 的应用。解压后,再按载荷的实际文件类型选择相应应用打开。
Mac 怎么打开 BZ2 文件?
在终端运行 bunzip2 或 bzip2 -d;如需把解压字节写到标准输出,可使用 bzcat。兼容 libarchive 的应用也是一种选择。
手机怎么打开 BZ2 文件?
手机应用对 BZ2 的支持并不一致,安装前先在应用的格式支持说明里确认包含 BZ2 或 Bzip2。
损坏的 BZ2 文件出现 CRC 校验错误时如何恢复?
CRC 错误能报告损坏,但不能重建原始数据。官方 bzip2recover 可尝试按块恢复;对任何恢复出的内容仍应谨慎核对。
打包多个具名文件时应该选 BZIP2 还是 ZIP?
Bzip2 适合压缩单个文件,不能自行打包目录或多个具名条目。若需要这种多条目结构,应选择具备相应打包能力的归档格式。
怎样把 BZIP2 文件转换成 ZIP 并保留原始载荷?
先解压 BZIP2 数据流,再用目标格式压缩所得载荷。两步均为无损处理时可保留载荷,但不会保留 Bzip2 的块大小、压缩块或 CRC 布局。
BZIP2 文件是否安全,可以直接打开吗?
Bzip2 数据流本身不具备固有的可执行性,也不提供加密,但解压后可能出现任意内容。应单独评估解压文件,并对不可信来源限制内存和输出量。
BZ2 文件头魔数 BZh 表示什么?
PRONOM 给出的起始模式是 42 5A 68 ?? 31 41 59 26 53 59,依次包含 ASCII“BZh”、块大小字节和首个块标记。模式匹配可以识别格式,但不能证明内容可信。
BZIP2 解压提示 BZ_MEM_ERROR 是什么原因?
解压内存需求取决于输入流头记录的块大小;可用内存不足时可能出现 BZ_MEM_ERROR。压缩数据解码后也可能显著膨胀,因此还应限制输出量。
相关格式
资料来源
bzip2 and libbzip2, version 1.0.8 — Official Manual · Official bzip2 project documentation
PRONOM: BZIP2 Compressed Archive (x-fmt/268) · The National Archives, UK format registry
PRONOM: BZIP2 Compressed Archive Signatures · The National Archives, UK signature registry
Sustainability of Digital Formats: bzip2 · Library of Congress
LibarchiveFormats · Official libarchive project documentation