我有一个巨大的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
,如何创建仅包含dir1:
的新tar存档文件subset.tar.gz
tar tfz subset.tar.gz
dir1/bla/bla.bla
答案 0 :(得分:2)
这是一个两步过程。首先,您需要从tarball中提取目录:
tar -zxf huge.tar.gz dir1
然后你需要压缩它:
tar -zcf subset.tar.gz dir1
答案 1 :(得分:0)
我发现这件事的唯一方法就是从存档中删除你不想要的所有内容(如果你使用的是支持--delete的tar版本),你可以执行以下操作。
gzip -d < huge.tar.gz |tar --delete bla2 bla3 |gzip >part_huge.tar.gz