【问题标题】:Unzipping tar.gz file partially部分解压 tar.gz 文件
【发布时间】:2014-04-02 14:18:23
【问题描述】:

可以部分解压 tar.gz 文件,例如仅从大 tar.gz 文件的中间解压缩几兆字节?

我有这个想法,因为我们有很多压缩日志文件,将 100mb 日志文件解压缩到 ~1gb 文件然后在其中搜索非常耗时。有“部分解压缩”选项会很棒。

【问题讨论】:

  • 您说要从文件中解压缩某些部分以“更快”地搜索到它?即使这是可能的,你怎么知道你正在寻找的信息在你解压缩的那部分?例如,当您有一个损坏的文件并且您想要保存“正确”信息时,部分解压缩可能很有用
  • 如果您正在寻找某样东西,您怎么知道要在中间寻找什么?
  • 您可以按时间范围搜索 - 它是带有时间戳的日志文件。

标签: java algorithm io gzip compression


【解决方案1】:

除非 .gz 文件是专门为此准备的,否则不,您需要将所有数据解压到中间才能解压中间的内容。

可以定期在deflate() 中使用Z_FULL_FLUSH 在压缩数据中插入断点,以允许从这些断点开始解压缩。您必须有一个不同的文件和您自己的软件来跟踪这些断点的位置,以及它们在未压缩数据中的位置。

由于它是一个 .tar.gz 文件,因此只在文件边界处设置这些断点是有意义的。 tar 格式本身可以从任何文件头开始读取,没有问题。

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 2011-11-01
    • 1970-01-01
    • 2018-06-26
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    相关资源
    最近更新 更多