2016-03-23 44 views
0

私のディレクトリには、私は./に各ディレクトリをループにしたいし、それぞれのzipファイルを解凍し、この.zipファイルを複数のディレクトリに解凍するにはどうすればよいですか?

./Dir1/Some file.zip 
./Dir2/Some other file.zip 
./UnzipFiles.sh 

のように見えます。

UnzipFiles.shは次のようになります。

#!/bin/bash 

for i in ./*/*.zip 
do 
     cd "$i"; 
     unzip "$i"; 
done 

しかしそれは./にすべてを解凍します。私は各.zipファイルの内容を、それを含むディレクトリに解凍します。

これはどのようにbashで行うのですか?

+1

'echo '#dbg:i = $ i" 'を' for'ループに追加して他のコードをコメントアウトすると、あなたの問題が見えます。がんばろう。 – shellter

+0

@shellter「$ i」は実際にはディレクトリではなく「.zip」ファイルであることがわかりました。ありがとう。 – Username

答えて

1

私は、それぞれファイルにcdでした。代わりに、私はこれを行うために必要な:あなたに多くの時間を節約することができます

#!/bin/bash 

for i in ./*/ 
do 
     cd "$i"; 
     unzip *.zip; 
     cd ../; 
done 
1

シンプルな1ライナーをls *.zip内のファイルのための

$; $ file -d echo $file | cut -d . -f 1を解凍します。完了しました

関連する問題