将gzip文件拆分为较小的gz文件,而无需重新压缩


9

我有一个很大的.gz文件。我想将其拆分为100个较小的gzip文件,每个文件都可以自行解压缩。换句话说:我不是在寻找一种将.gz文件切成小块的方法,这些小块必须放在一起才能解压缩。我希望能够独立解压缩每个较小的文件。

无需重新压缩整个文件就能完成吗?

如果使用压缩原始文件,可以这样做--rsyncable吗?(“通过定期重置压缩数据流的内部结构,可以使rsync程序更好。”听起来像这些重置点可能是拆分标题的好地方,并且可能在标头的前面。)

可以使用其他任何压缩格式吗?我想像bzip2是可行的-因为它被压缩成块。


您尝试过split -b吗?
George Vasiliou

3
@GeorgeVasiliou不会生成较小的gzip文件,可以将其解压缩。
Ole Tange

您第一个问题的答案是“否”,这已在“ 删除gz文件的最后一行”中进行了介绍。对于大多数压缩格式,答案可能是否定的,因为您所要求的与压缩相反。gzip --rsyncable考虑到“ gunzip无法分辨差异”,我认为答案也不是(如果您可以找到一个拆分的地方,就可以告诉您拆分的地方)。由于其特殊的块功能,它可能对bzip2可行。
吉尔(Gilles)'“ SO-别再邪恶了”

这可能会有所帮助:stackoverflow.com/a/22628945/4941495 只要让标准输入流成为的输出即可gzip -d -c bigfile.gz
Kusalananda

如果不重新压缩,则bzip2实际上可以使用文件。通过单独压缩每个块gzxz仅通过单独压缩每个块是可行的,因此这将需要重新压缩。
xhienne

Answers:


0

分割和合并大文件是可行的,但是无法解压缩压缩文件的片段,因为基本信息分布在整个数据集中。另一种方式; 拆分未压缩的文件并压缩单个部分。现在您可以解压缩每个片段。但为什么?您必须先合并所有解压缩的部分,然后再进行进一步处理。


1
有趣的事实:当您具有单独压缩的部分(使用gzipxz)时,可以进行串联和解压缩,或者解压缩和串联。顺序无关紧要。
库沙兰丹

也许,这取决于数据。如果拆分和压缩磁盘映像,则有机会恢复文件系统的某些部分。如果先压缩然后再分裂,则绝对没有机会。
ingopingo

不,那也不是我的前提。我只是说过,当您分别压缩各个部分时,进行连接和解压缩的顺序并不重要(这是由于压缩文件格式所致)。如果先压缩,然后分裂,那么显然首先需要重新组合。
库沙兰丹

哦,太酷了。即使每个部分都包含一个单独的文件头,它也可以工作!
ingopingo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.