如何在Linux下解压缩多个文件?

时间:2020-01-09 10:42:23  来源:igfitidea点击:

我在/disk2/images /目录中有很多文件。

所有文件均为zip文件格式,因此我正在使用以下命令提取zip文件:unzip * .zip该命令导致出现如下错误:

caution: filename not matched
注意:文件名不匹配

Linux/Unix的系统下如何解压缩多个zip文件?
类似于Linux或者Unix的系统使用unzip命令来列出,测试或者从ZIP归档文件中提取文件,该文件通常在MS-DOS系统上找到。

Linux上多个zip文件的问题

假设您在/disk2/images /目录中有四个文件,如下所示:

  • pictures.zip
  • visit.zip
  • data.zip
  • invoices.zip

让我们用ls命令验证它:

$ ls

输出示例:

data.zip	invoices.zip	pictures.zip	visit.zip

要解压缩所有文件,请执行:

$ unzip *.zip

输出示例:

Archive:  data.zip
caution: filename not matched:  invoices.zip
caution: filename not matched:  pictures.zip
caution: filename not matched:  visit.zip

以上错误表明您错误地使用了unzip命令。
这意味着从data.zip存档中提取invoices.zip,pictures.zip和visit.zip文件。
您的shell将命令unzip * .zip展开,如下所示:

unzip data.zip invoices.zip pictures.zip visit.zip

当您想使用通配符解压缩文件时,解决方案非常简单。
您有以下两种选择。

#1:使用单引号将多个文件解压缩

从Linux命令行解压缩多个文件的语法如下:

unzip '*.zip'

执行以下命令,如下所示:

$ cd /disk2/images/
$ unzip '*.zip'
$ ls -l

注意:* .zip放在两个单引号之间,因此shell不会将其识别为通配符。

#2:使用Shell for Loop从Linux命令行解压缩多个文件

您还可以如下使用for循环:

for z in *.zip; do unzip $z; done