![如何解压位于多个子目录中的多个 zip 文件,这些文件都位于不同的目录中](https://linux22.com/image/1572615/%E5%A6%82%E4%BD%95%E8%A7%A3%E5%8E%8B%E4%BD%8D%E4%BA%8E%E5%A4%9A%E4%B8%AA%E5%AD%90%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%A4%9A%E4%B8%AA%20zip%20%E6%96%87%E4%BB%B6%EF%BC%8C%E8%BF%99%E4%BA%9B%E6%96%87%E4%BB%B6%E9%83%BD%E4%BD%8D%E4%BA%8E%E4%B8%8D%E5%90%8C%E7%9A%84%E7%9B%AE%E5%BD%95%E4%B8%AD.png)
我有一份 zip 文件列表,其中每个 zip 文件还包含一些其他 zip 文件,等等。我需要使用 ubuntu shell 命令提取所有文件,并仅将扩展名为 *.pdf 的文件放入新的空目录中。
这是我设法到达的地方,我已尝试 unzip -l "*.zip"
答案1
从 如何递归解压嵌套的 ZIP 文件? 以下是一行代码:
while [ "`find . -type f -name '*.zip' | wc -l`" -gt 0 ]; do find -type f -name "*.zip" -exec unzip -- '{}' \; -exec rm -- '{}' \;; done
这将删除所有已完成的 zip 文件,以避免无限循环。如果您想保留这些文件,请先备份。