我有一个文件夹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有些文件被命名为.r00
和r01
。r02
直到 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
。只需将.zip
s 从 中提取出来Example-A.zip
(大概是提取到名为 的文件夹中Example-A-Folder
),然后逐个提取它们。这可能会很麻烦,因为在递归压缩的情况下(在 Windows 上,Example.zip.zip.zip
会出现类似的东西)会导致一个压缩文件夹在另一个压缩文件夹中,而另一个压缩文件夹又在另一个压缩文件夹中,等等。