我有一个ZIP文件目录(在Windows机器上创建的)。我可以手动解压缩他们使用unzip文件名,但我怎么能解压缩所有的ZIP文件在当前文件夹通过shell?
使用Ubuntu Linux服务器。
我有一个ZIP文件目录(在Windows机器上创建的)。我可以手动解压缩他们使用unzip文件名,但我怎么能解压缩所有的ZIP文件在当前文件夹通过shell?
使用Ubuntu Linux服务器。
当前回答
对于'ls *.zip'文件;解压缩"${file}" -d "${file:0:-4}";完成
其他回答
unpack -e *.zip,安装atool。 具有智能地处理错误的优点,并且总是解包到子目录中,除非zip只包含一个文件。因此,不存在使用大量文件污染当前目录的危险,而在没有目录结构的zip文件上进行unzip则存在这种危险。
for i in *.zip; do
newdir="${i:0:-4}" && mkdir "$newdir"
unzip "$i" -d "$newdir"
done
这将把所有zip归档解压缩到以zip归档的文件名命名的新文件夹中。
a.zip b.zip c.zip将分别解压缩到b. c文件夹中。
解压缩所有。zip文件,并将内容存储在与。zip文件同名的新文件夹中:
find . -name '*.zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
这是@phatmanace的回答的延伸,并解决了@RishabhAgrahari的评论:
这将在当前目录中提取所有的zip文件,如果我想在各自的子文件夹中提取zip文件(目前在子文件夹中)怎么办?
for i in `ls *.zip`; do unzip $i; done
对于'ls *.zip'文件;解压缩"${file}" -d "${file:0:-4}";完成