如何递归提取多个 zip 和 rar 文件?

如何递归提取多个 zip 和 rar 文件?

我有一个文件夹ExampleFolder,里面包含许多压缩文件夹。这些压缩文件夹还包含多个压缩文件夹。如何递归地遍历ExampleFolder并提取其所有压缩文件夹?

请注意,它ExampleFolder本身不是压缩文件,它只是一个普通的文件夹

好的,现在我知道发生了什么 Rinzwind 和 nux 的答案都是正确的(除了我必须一直按 Y 或 A)

但似乎有些压缩文件,包含压缩文件和 rar 文件,rar 文件不会被提取

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

管他呢

编辑2有些文件被命名为.r00r01r02直到 r14,它们是rar文件,但不是.rar

答案1

您可以使用此命令,它将递归解压缩当前目录中的所有文件。

笔记这将删除原始的压缩文件,但如果您想保留原始文件,请删除-exec rm -- '{}' \;代码。

命令 :

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

答案2

我能想到的最简单的方法是解压 zip,然后提取里面的内容。

假设ExampleFolder你有Example-A.zip。只需将.zips 从 中提取出来Example-A.zip(大概是提取到名为 的文件夹中Example-A-Folder),然后逐个提取它们。这可能会很麻烦,因为在递归压缩的情况下(在 Windows 上,Example.zip.zip.zip会出现类似的东西)会导致一个压缩文件夹在另一个压缩文件夹中,而另一个压缩文件夹又在另一个压缩文件夹中,等等。

相关内容