![解压多个文件](https://linux22.com/image/1123494/%E8%A7%A3%E5%8E%8B%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6.png)
我不认为我是唯一一个遇到这个问题的人,但不幸的是我无法在之前提出的问题中找到正确的答案。
这是 torrent 网站上很常见的做法,即将内容分成许多小档案。有时,这些小型索引 zip 档案里面还包含另一个 rar 档案。
所以,我的问题是:你如何处理这个问题?如何递归地解压这些文件?
答案1
为此,只需按下键盘上的Ctrl+ Alt+T即可打开终端。打开后,运行以下命令:
unzip '*.zip'
您也可以右键单击组中的第一个文件,然后在此处选择“提取”,这也将提取该组中的所有文件。
答案2
要使用循环解压缩多个文件 -
for z in *.zip; do unzip "$z"; done
答案3
如何一次解压多个文件
...使用并行操作(每个进程一个 CPU 核心,进程数与核心数相同),进入与 zip 文件同名的输出目录:
这可能看起来很复杂,但它很漂亮,而且快速地。它将把当前目录中的所有顶级*.zip
文件解压到与 zip 文件同名的文件夹中:
# Install `unar` (un-archive)
sudo apt update
sudo apt install unar
# Unzip all files
time find . -maxdepth 1 -type f -iname "*.zip" -print0 | xargs -0 -I{} -n 1 -P $(nproc) unar -f {}
unar
用来代替,unzip
因为unar
会自动将提取的输出放入与 .zip 文件同名的文件夹中。- 如果您也想提取
*.zip
较低级别的文件,请删除该-maxdepth 1
选项。
参考
也可以看看
- 基于上述工作,我的回答更长一些,我提取一个或多个密码保护并行处理文件使用
find
、xargs
和unar -p my_password path/to/myfile.zip
。
答案4
CTRL++ALT打开T终端
for f in $(ls | egrep zip); do
unzip $f -vd UnzippedDirectory
done
这基本上循环遍历您在当前目录中获得的所有 zip 文件,并将它们每个详细文件(因此带有标志-v
)解压缩到一个目录中(-d
标志)