将 gzip 文件分割成更小的 gz 文件而不重新压缩

将 gzip 文件分割成更小的 gz 文件而不重新压缩

我有一个大的 .gz 文件。我想将它分成 100 个较小的 gzip 文件,每个文件都可以单独解压缩。换句话说:我并不是在寻找一种将 .gz 文件切成块的方法,这些块必须重新组合在一起才能解压缩。我希望能够独立解压缩每个较小的文件。

可以在不重新压缩整个文件的情况下完成吗?

如果原文件用 压缩可以吗--rsyncable? (“通过定期重置压缩数据流的内部结构来更好地满足 rsync 程序。”听起来这些重置点可能是分割的好地方,并且可能会在前面添加一个标头。)

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

答案1

大文件的拆分和合并是有效的,但无法解压缩压缩文件的各个部分,因为基本信息分布在整个数据集中。其他方式;分割未压缩的文件并压缩各个部分。现在您可以解压缩每个部分。但为什么?在进一步处理之前,您必须合并所有解压的部分。

答案2

除了我的错误之外,我认为这是不可能的,如果不改变您的文件而失去重建和解压缩大文件的能力,因为您将丢失第一个大文件压缩中的元数据(标头和尾部),并且这些元数据不存在对于您的每个小文件。

但是你可以创建一个包装器来......

  1. (可选)压缩大文件
  2. 将你的大文件分成 100 个小块
  3. 用 gzip 压缩每个小块
  4. 解压缩 gzip 中的每个块。
  5. 将块连接到大文件中。
  6. (可选)解压大文件

注意:我不确定您的目的...节省存储空间?节省网络传输时间?有限空间系统 ?你的根本需求是什么?

此致

相关内容