解压目录中的所有文件

我有一个ZIP文件的目录(在Windows机器上创build)。 我可以使用unzip filename手动解压缩它们,但是如何通过shell解压当前文件夹中的所有ZIP文件?

使用Ubuntu Linux服务器。

(未经testing),但是这个链接表明:

解压缩\ *。zip

只是放在一些引号来逃避通配符:

 unzip "*.zip" 

将当前目录中的所有压缩文件解压缩为具有压缩文件的文件名的新dirs文件。

例如,以下文件:

 myfile1.zip myfile2.zip 

将被提取到:

 ./myfile1/files... ./myfile2/files... 

Shell脚本:

 #!/bin/sh for zip in *.zip do dirname=`echo $zip | sed 's/\.zip$//'` if mkdir "$dirname" then if cd "$dirname" then unzip ../"$zip" cd .. # rm -f $zip # Uncomment to delete the original zip file else echo "Could not unpack $zip - cd failed" fi else echo "Could not unpack $zip - mkdir failed" fi done 

解压缩* .zip,或者如果它们在子文件夹中,则类似

 find . -name "*.zip" -exec unzip {} \; 

aunpack -e *.zip ,安装了atool 。 具有智能处理错误的优点,除非zip只包含一个文件,否则总是将其解压缩到子目录中。 因此,不存在用大量文件污染当前目录的危险,就像在没有目录结构的zip上unzip

 for i in *.zip; do newdir="${i:0:-4}" && mkdir "$newdir" unzip "$i" -d "$newdir" done 

这将把所有的zip压缩文件解压缩到以压缩文件名称命名的新文件夹中。

a.zip b.zip c.zip将分别解压缩到b c文件夹中。

用这个:

 for file in `ls *.Zip`; do unzip ${file} -d ${unzip_dir_loc} done 

for file in 'ls *.zip'; do unzip "${file}" -d "${file:0:-4}"; done

 for i in `ls *.zip`; do unzip $i; done 

使用

 sudo apt-get install unzip unzip file.zip -d path_to_destination_folder 

在linux中解压缩一个文件夹