gpt4 book ai didi

linux - 从 linux 中的文件夹解压子文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 12:41:39 24 4
gpt4 key购买 nike

我有一个目录 /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 

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

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

find . -type f -name "*.tar.gz" -execdir tar -xvzf {} \;

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

最佳答案

在运行 tar 之前,您可能会解析文件名并 cd 到目录中。您可以像这样将一个简单的 shell 脚本放入 /folder 中:

~/folder$ cat extract-in-dir.sh 
#!/bin/bash
DIRECTORY="${1%/*}"
TARFILE="${1##*/}"

cd $DIRECTORY
tar -xf $TARFILE

然后 chmod +x ./extract-in-dir.sh 并像这样运行它:

找到 . -type f -name\*tar -exec ./extract-in-dir.sh {}\;

关于linux - 从 linux 中的文件夹解压子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com