索引存档格式?

索引存档格式?

我需要创建文件的压缩档案,并能够快速从中提取单个文件/目录。

问题是,例如,tar.bz2 似乎不是此类任务的最佳选择 - 在我的计算机上从 200Mb 存档(50000 个文件)中提取单个 4kb 文件需要 17 秒。

是否有某种存档格式可以从存档中快速导出单个文件(并且可以在 Linux 上运行)?

答案1

像素是 xz 的并行索引版本。

# Compress:
tar -I pixz -cf foo.tar.xz ./foo

# Decompress:
tar -I pixz -xf foo.tar.xz

# Very quickly list the contents of the compressed tarball:
pixz -l foo.tar.xz

# Very quickly extract a single file:
pixz -x dir/file < foo.tar.xz | tar x

答案2

Zip 格式单独压缩每个文件,然后将它们(与存档内容的目录)组合成一个存档文件。

答案3

除了已经提到的 zip 格式之外,dardump实用程序也擅长处理此问题,并且与 zip 不同的是,保留了 unix 权限。因为dar您想避免使用固定存档选项,因为这又回到了一次压缩整个文件的 tar/gzip 方法,这提供了更好的压缩效果,但使得提取单个文件需要更长的时间,因为整个文件必须解压缩,直到找到所需的文件。 dump可以很好地处理大量小文件(数万个),并且可以进行多线程压缩,但它只能读取 ext[234] 文件系统。

答案4

.tar.gz具有更快的解压缩速度,但代价是最差的压缩大小。编辑:伊格纳西奥·巴斯克斯-艾布拉姆斯忍者了我。

相关内容