web-dev-qa-db-ja.com

複数のzipファイルとrarファイルを再帰的に抽出する方法は?

ExampleFolderというフォルダーがあり、そこには多くのzipフォルダーが含まれています。これらの圧縮フォルダーには、複数の圧縮フォルダーも含まれます。 ExampleFolderを通過し、すべての圧縮されたフォルダーを再帰的に抽出する方法

ExampleFolder自体はzipではなく、単なる通常のフォルダーであることに注意してください

さて、私はRinzwindとnuxの答えがどちらも正しいことを知っています(YまたはAを永遠に押し続けなければならないことを除いて)

ただし、zipファイル、zipファイル、およびrarファイルも含まれているため、rarファイルは抽出されません。

while [ "`find . -type f -name '*.Zip' | wc -l`" -gt 0 ]; do find -type f -name "*.Zip" -exec unzip -- '{}' \; -exec rm -- '{}' \;; done 

または何でも

編集2一部のファイルの名前は.r00およびr01、r14までは.r02、それらはrarファイルですが、.rarではありません

2
Lynob

このコマンドを使用すると、現在のディレクトリ内のすべてのファイルが再帰的に解凍されます。

これは元の圧縮ファイルを削除しますが、元のファイルを残したい場合は-exec rm -- '{}' \; codeを削除します。

コマンド:

while [ "`find . -type f -name '*.Zip' | wc -l`" -gt 0 ]; do find -type f -name "*.Zip" -exec unzip -- '{}' \; -exec rm -- '{}' \;; done 
1
nux

私が想像できる最も簡単な方法は、Zipを抽出してから、内部にあったものを抽出することです。

ExampleFolderExample-A.Zipがあったとしましょう。 .ZipからExample-A.Zipsを(おそらくExample-A-Folderという名前のフォルダーに)抽出し、それぞれを1つずつ抽出します。これは、再帰的に圧縮すると(WindowsではExample.Zip.zip.Zipなどが圧縮されて)圧縮されたフォルダーが別のフォルダー内にある場合などに、面倒です。

0
Andrew Stewart