【问题标题】:Write subset of a huge tar file to a new tar file without unpacking first将一个巨大的 tar 文件的子集写入一个新的 tar 文件,而无需先解包
【发布时间】:2012-03-28 16:18:06
【问题描述】:

我有一个巨大的 gzip 压缩 tar 归档文件 huge.tar.gz,我想从中提取一个子集并将其放入一个新的 gzip 压缩 tar 文件归档 subset.tar.gz,而无需先提取所有巨大的文件。例如如果列出huge.tar.gz的内容:

    tar tfz huge.tar.gz
    dir1/bla/bla.bla
    dir2/bla/bla.bla
    dir3/bla/bla.bla

,我怎样才能创建一个新的 tar 归档文件 subset.tar.gz 只包含 dir1:

    tar tfz subset.tar.gz
    dir1/bla/bla.bla

【问题讨论】:

    标签: subset archive tar


    【解决方案1】:

    这是一个两步过程。首先,您需要从 tarball 中提取目录:

    tar -zxf huge.tar.gz dir1
    

    然后你需要压缩它:

    tar -zcf subset.tar.gz dir1
    

    【讨论】:

      【解决方案2】:

      我发现 donig 的唯一方法是从存档中删除您不想要的所有内容(前提是您使用的是支持 --delete 的 tar 版本)您可以执行以下操作。

      gzip -d < huge.tar.gz |tar --delete bla2 bla3 |gzip >part_huge.tar.gz
      

      【讨论】:

        猜你喜欢
        • 2017-09-23
        • 2013-07-11
        • 1970-01-01
        • 1970-01-01
        • 2020-04-04
        • 1970-01-01
        • 2018-08-12
        • 2022-01-14
        • 1970-01-01
        相关资源
        最近更新 更多