在bash中从zip存档中提取大量文件的更好方法


1

我有一个包含大量文件的zip存档和一个带有文件列表(~10000项)的纯文本文件,我需要使用bash从该存档中提取。

执行该操作的最佳方法是什么?显而易见的方法是为每行文件运行解压缩,但它看起来非常慢。

bash  zip 

Answers:


2

unzip您可以通过输入纯文本作为输入来运行整个文件列表,而不是在每个文件上运行:

unzip -j MyZipFile.zip <<<textfile

在macosc'-j' junk paths上你的系统是不一样的?因此,这对我不起作用。

我没有必要访问我测试它的机器:)我现在在工作,我使用不同的Linux,不知道是否有不同的zip味道。但你可以忽略-j并且zip MyZipFile.zip <<<file应该工作。
PP

0

解压缩支持指定要提取的文件:

unzip archive.zip file1.txt file2.txt file3.txt ...

但这不适用于10000件物品。您可以将文件列表拆分为100块并运行解压缩,这比为自己提取每个文件更快。


0

您可以使用带有-a选项的xargs 从文件中读取其参数。可能还使用一个标志来将参数的数量限制为适当的数量,以确保如果有这样的限制,shell不会有太多的处理。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.