2016-10-12 2 views
0

サブディレクトリ(Landsat_Data/Site1Landsat_Data/Site2など)を含む/Landsat_Data/というディレクトリがあります。各サブディレクトリには、.tar.gzファイル(例えば/Landsat_Data/Site2/LE70930862008092-SC20160107074735.tar.gzなど)が含まれ、各.tar.gzファイルがthisLlinuxのフォルダにあるサブフォルダを展開します

-rw-r--r-- espa/ie 29952 2016-01-07 14:57 LT50930861991021ASA00_sr_snow_qa.tif 

などのTIFファイルまたはXMLファイルが含まれている私は何をしたいのか、独自のサブサブディレクトリ(例に、各tarファイルをuntarすることですLandsat_Data/Site2/LE70930862008092-SC20160107074735/ )。私はちょうどuntarするにしたいしながら、各サブディレクトリ(例えばLandsat_Data/Site2)に

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

しかし、このコマンドの抽出物は、すべてのTIFとxmlファイル:これまでのところ、私はLandsat_Dataディレクトリでありながら、このコマンドラインを使用しています

LE70930862008092-SC20160107074735.tar.gzには、すべてのtifファイルとxmlファイルを含むLE70930862008092-SC20160107074735というサブサブディレクトリがあります。どのように私は私が欲しいものを達成することができますか?

+2

私はので、オフトピックとして、この質問を閉じるために投票しています[http://unix.stackexchange.com/](hunp.unix.stackexchange.com/tour)]に入れる必要があります。 –

答えて

0

tarを実行する前に、ファイル名を解析してディレクトリにcdすることができます。 chmod +x ./extract-in-dir.shその後

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

cd $DIRECTORY 
tar -xf $TARFILE 

とこのようにそれを実行します:あなたは、このいずれかのよう/folderに簡単なシェルスクリプトを置くことができ

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

関連する問題