我有一个ZIP文件目录(在Windows机器上创建的)。我可以手动解压缩他们使用unzip文件名,但我怎么能解压缩所有的ZIP文件在当前文件夹通过shell?
使用Ubuntu Linux服务器。
我有一个ZIP文件目录(在Windows机器上创建的)。我可以手动解压缩他们使用unzip文件名,但我怎么能解压缩所有的ZIP文件在当前文件夹通过shell?
使用Ubuntu Linux服务器。
当前回答
要解压缩目录中的所有文件,只需在终端中键入以下命令:
unzip '*.zip'
其他回答
解压缩所有。zip文件,并将内容存储在与。zip文件同名的新文件夹中:
find . -name '*.zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
这是@phatmanace的回答的延伸,并解决了@RishabhAgrahari的评论:
这将在当前目录中提取所有的zip文件,如果我想在各自的子文件夹中提取zip文件(目前在子文件夹中)怎么办?
下面的shell脚本将当前目录中的所有zip文件提取到新的dirs中,并以zip文件的文件名命名,即:
以下文件:
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
源要点
用法:
cd /dir/with/zips
wget -O - https://www.toptal.com/developers/hastebin/suvefuxuxo.bash | bash
Use
sudo apt-get install unzip
unzip file.zip -d path_to_destination_folder
在Linux中解压缩一个文件夹
只需输入一些引号来转义通配符:
unzip "*.zip"
在任何POSIX shell中,这将为每个zip文件解压缩到不同的目录:
for file in *.zip
do
directory="${file%.zip}"
unzip "$file" -d "$directory"
done