问题描述
我有一个在Linux上运行的程序,该程序会生成数千个文本文件。我希望将这些文件打包成一个(压缩的)文件。
压缩文件稍后将由C程序打开,该C程序需要以随机方式访问该容器中的特定文件。
整个过程如下:
效果很好。但是,压缩大约需要20分钟。因为这种压缩是在40核服务器上运行的,所以我一直在使用lbzip2进行实验,在压缩率和速度方面都取得了优异的成绩。我还使用过zip -0
将所有.bz文件打包到一个.zip容器中,由于随机访问,我认为这是比tar更好的选择。
所以我的问题是,如何读取.zip文件中压缩的.bz文件?据我所知,gzopen
将文件路径作为第一个参数。
解决方法
您可以继续使用当前的zip格式进行随机访问。在每个文本文件上分别运行单独的zip命令,以将其转换为许多单入口zip文件。一次启动所有这些,您的40个核心将保持繁忙直到完成。完成后,使用zipmerge将它们全部合并为一个zip文件。