【发布时间】:2026-02-05 02:00:02
【问题描述】:
是否可以对 7zip 压缩的非常大的文件进行随机访问(大量搜索)?
原始文件非常大(999gb xml),我无法以解压格式存储它(我没有那么多可用空间)。因此,如果 7z 格式允许访问中间块而无需解压缩所选块之前的所有块,我可以建立块开始索引和相应的原始文件偏移量。
我的 7z 存档的标题是
37 7A BC AF 27 1C 00 02 28 99 F1 9D 4A 46 D7 EA // 7z archive version 2;crc; n.hfr offset
00 00 00 00 44 00 00 00 00 00 00 00 F4 56 CF 92 // n.hdr offset; n.hdr size=44. crc
00 1E 1B 48 A6 5B 0A 5A 5D DF 57 D8 58 1E E1 5F
71 BB C0 2D BD BF 5A 7C A2 B1 C7 AA B8 D0 F5 26
FD 09 33 6C 05 1E DF 71 C6 C5 BD C0 04 3A B6 29
更新:7z 存档器说这个文件有一个数据块,用 LZMA 算法压缩。测试解压速度为 600 MB/s(解压数据),仅使用一个 CPU 内核。
【问题讨论】:
-
还有一个有趣的
xz变体,即vasi的pixz,它可以将文件打包成几个块,并为快速查找添加流索引(通常用于tar.xz中的快速查找): github.com/vasi/pixz "Pixz 会生成一组较小的块,这使得随机访问原始数据成为可能。这对于大型 tarball 尤其有用。"
标签: wikipedia 7zip compression random-access