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

(这适用于大约十几个独特目录中的数千个文件)

我想将它们解压缩到我的 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

可能无法一次性完成,但我还没有找到任何脚本可以在部分目录中读取几千个文件,然后将它们解压缩到特定目录。有什么想法吗?

相关内容