一、首先安装
$sudo apt-get install unzip unrar
二、进入到所在文件夹,然后有如下几种方法可用
方法一:用分号或者&&隔开(适用于对象较少的时候)
sudo unzip a.zip && unzip b.zip && unzip c.zip
或者:
sudo unzip a.zip; unzip b.zip ;unzip c.zip
方法二:
sudo find . -name '*.zip' -exec unzip {} \;
方法三:
sudo ls *.zip | xargs -n1 unzip -o -P infected
方法四:(借用一个循环)
# for i in *.zip > do > unzip -o $i > done
注:如果要以覆盖方式解压,请在unzip后面接上-o,即是
unzip -o …
其中第三种方法好用些,比如要以覆盖方式解压ab*.zip文件,可以这样
$ ls ab*.zip | xargs -n1 unzip -o
其中这里的-n1是数字的1,不是字母l。
有多种方法:
sudo unzip \*.zip
sudo unzip "*.zip"
ls *.zip |sudo xargs -n1 unzip
for z in *.zip; do unzip $z; done
unzip *.zip命令之所以会报错。是因为该命令相当于unzip a.zip b.zip c.zip, 其中a.zip, b.zip, c.zip是当前目录中的zip文件。两个命令的报错都是一样的,是指进入a.zip,对a中的b.zip c.zip进行解压。而实际上b.zip和c.zip和a.zip在同一个目录下,所以会报错找不到。之所以ls *.zip能运行成功,而unzip *.zip报错的原因与两个命令的参数格式有关。ls命令后面可以跟多个文件名,而unzip不行,unzip的第2个参数表示在第一个参数指定的zip归档中找。
来源阅读:
unzip批量解压 (bydeath.github.io)
Linux下批量解压多个zip文件的方法_crazycui的博客-CSDN博客_unzip批量解压