解压多个文件

解压多个文件

我不认为我是唯一一个遇到这个问题的人,但不幸的是我无法在之前提出的问题中找到正确的答案。

这是 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选项。

参考

  1. Unix 和 Linux:解压到与文件同名的文件夹(不带 .zip 扩展名)
  2. 关于如何使用xargs

也可以看看

  1. 基于上述工作,我的回答更长一些,我提取一个或多个密码保护并行处理文件使用findxargsunar -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标志)

相关内容