将大型 tar 文件的子集写入新的 tar 文件,而无需先解压

use*_*609 5 tar subset archive

我有一个巨大的 gzipped tar 存档文件huge.tar.gz,我想从中提取一个子集并将其放入新的 gzipped tar 文件存档中subset.tar.gz,而不首先提取所有巨大文件。例如,如果列出以下内容huge.tar.gz

    tar tfz huge.tar.gz
    dir1/bla/bla.bla
    dir2/bla/bla.bla
    dir3/bla/bla.bla
Run Code Online (Sandbox Code Playgroud)

,如何创建subset.tar.gz仅包含 dir1 的新 tar 存档文件:

    tar tfz subset.tar.gz
    dir1/bla/bla.bla
Run Code Online (Sandbox Code Playgroud)

Ger*_*osi 0

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

tar -zxf huge.tar.gz dir1
Run Code Online (Sandbox Code Playgroud)

然后你需要压缩它:

tar -zcf subset.tar.gz dir1
Run Code Online (Sandbox Code Playgroud)