在 linux 中解压带有初始文件夹内容的子文件夹

Sim*_*onB 7 tar directory

我有一个目录,/Landsat_Data/其中包含子目录(Landsat_Data/Site1Landsat_Data/Site2,等)。每个子目录包含.tar.gz文件(例如/Landsat_Data/Site2/LE70930862008092-SC20160107074735.tar.gz,等),每个.tar.gz文件包含这样的 tif 或 xml 文件L

-rw-r--r-- espa/ie  29952 2016-01-07 14:57 LT50930861991021ASA00_sr_snow_qa.tif 
Run Code Online (Sandbox Code Playgroud)

我想要做的是将每个 tar 文件解压缩到它自己的子目录中(例如Landsat_Data/Site2/LE70930862008092-SC20160107074735/)。

到目前为止,我在 Landsat_Data 目录中使用此命令行:

find . -type f -name "*.tar.gz" -execdir tar -xvzf {} \;
Run Code Online (Sandbox Code Playgroud)

但是,此命令将所有 tif 和 xml 文件提取到每个子目录(例如Landsat_Data/Site2)中,而我只想解压缩LE70930862008092-SC20160107074735.tar.gz以调用LE70930862008092-SC20160107074735包含所有 tif 和 xml 文件的子子目录。知道如何实现我想要的吗?

Arc*_*mar 5

尝试

find . -type f -name "*.tar.gz" -execdir tar -xvzf {} \;
Run Code Online (Sandbox Code Playgroud)

根据 man find

-execdir 命令;

-execdir 命令 {} +

与 -exec 类似,但指定的命令是从包含匹配文件的子目录中运行的,该子目录通常不是您开始查找的目录。