我有几个(27个)巨大的(每个几GB)bz2存档文件,我需要将它们组合成一个bz2存档。解压缩它们然后从未压缩的东西创建一个新的存档对我来说不是一个选项,因为压缩,所有27个文件加起来大约100GB,未压缩它大约5-6TB(是的,这是TERAbytes大声笑)。
这可以通过某种脚本完成,还是有其他压缩格式可以完成(更容易)?
答案 0 :(得分:29)
您可以简单地将许多bz2文件连接到单个bz2文件中,如下所示:
$ cat file1.bz2 file2.bz2 file3.bz2 >resulting_file.bz2
bzip2
以及lbzip2
等其他实用程序将能够按预期解压缩生成的文件。
答案 1 :(得分:4)
如果您愿意刻录几天的CPU,这里有一个现代UNIX(R)操作系统神奇管道设施的解决方案:
bzip2 -dc file*.bz2 | bzip2 >resulting_file.bz2
...实际上,抓住lbzip2 版本2.0 ,并在多核上执行相同的操作,除了使用lbzip2:
lbzip2 -dc file*.bz2 | lbzip2 >resulting_file.bz2
答案 2 :(得分:3)
您应该翻转问题 - 您不应该尝试解压缩然后重新压缩文件,只需制作所有单独文件的tar存档 - tar非常适合作为单独文件的容器。
tar cf tarofbzfiles.tar *.bz2
答案 3 :(得分:2)
您可以使用bzcat
的内置bzip2 -dc
简写缩短@ lacos的答案,并像往常一样重新输入bzcat2。没有比@lacos更正确但更有点光滑;)
bzcat file*.bz2 | bzip2 >resulting_file.bz2