bashはzipファイルから部分ディレクトリ構造を抽出します。

bashはzipファイルから部分ディレクトリ構造を抽出します。

顧客は、顧客のOUTPUTディレクトリから大容量(1.5gig、> 10,000ファイル)のzipファイルとそのディレクトリ構造を送信します。完全なディレクトリ構造ではなく、ディレクトリ構造を維持しながら、bashをINPUTディレクトリに解凍したいと思います。

たとえば、zipファイルに次のファイルが含まれている場合:

/home/base/data/output/able/file1.xml
/home/base/data/output/able/file2.xml
/home/base/data/output/able/file3.xml
/home/base/data/output/baker/file1.xml
/home/base/data/output/baker/file2.xml
/home/base/data/output/baker/file3.xml
/home/base/data/output/charlie/file1.xml
/home/base/data/output/charlie/file2.xml
/home/base/data/output/charlie/file3.xml

(これは約12の固有ディレクトリにある数千のファイルに対して機能します。)

次のようにINPUTディレクトリに抽出したいと思います。

../input/able/file1.xml
../input/able/file2.xml
../input/able/file3.xml
../input/baker/file1.xml
../input/baker/file2.xml
../input/baker/file3.xml
../input/charlie/file1.xml
../input/charlie/file2.xml
../input/charlie/file3.xml

これまで私は次のことを試しました。

unzip BIGFILE.zip   /output/   input

--(*) /出力/前後

able/baker/charlie同じディレクトリ構造を持つすべてのxmlファイルを解凍します。ただし、/ outputの前にファイル構造全体の解凍も解除されます。

../input/home/base/data/output/able/file1.xml
../input/home/base/data/output/able/file2.xml
../input/home/base/data/output/able/file3.xml
../input/home/base/data/output/baker/file1.xml
../input/home/base/data/output/baker/file2.xml
../input/home/base/data/output/baker/file3.xml
../input/home/base/data/output/charlie/file1.xml
../input/home/base/data/output/charlie/file2.xml
../input/home/base/data/output/charile/file3.xml

一度にすべての操作を実行することは不可能かもしれませんが、部分ディレクトリから何千ものファイルを読み取った後、特定のディレクトリに解凍できるスクリプトが見つかりませんでした。どんなアイデアがありますか?

関連情報