首页 > 解决方案 > 如何从 tar.gz 中仅提取所需的文件?

问题描述

我有一个 .tar.gz 文件,它下面有多个文件夹。每个文件夹都有多个文件,我只想从它下面的所有文件夹中提取SNAPSHOT .jar。

我尝试使用通配符,但没有帮助。前任:

    tar -xf samplejars.tar.gz --wildcards "*SNAPSHOT*.jar"

samplejars.tar.gz 有很多文件夹,我只想提取SNAPSHOT .jar。我怎么做?

注意:所有罐子都有唯一/不同的名称。

标签: linuxtar

解决方案


我使用以下文件夹结构对其进行了测试:

data/
data/a
data/a/ANOTHER_SNAPSHOT.jar
data/b
data/c
data/c/SNAPSHOT.jar
data/d
data/e
data/f
data/f/SNAPSHOT.jar.with.extension
data/g
data/g/SNAPSHOT.jar
data/h

以下通配符掩码有效,仅提取与SNAPSHOT.jar完全匹配的文件,而不是 SNAPSHOT.jar.with.extension 和 ANOTHER_SNAPSHOT.jar

tar -xf data.tar.gz --wildcards "*/SNAPSHOT.jar"

结果:

data/c/SNAPSHOT.jar
data/g/SNAPSHOT.jar

推荐阅读