我有一个ZIP文件目录(在Windows机器上创建的)。我可以手动解压缩他们使用unzip文件名,但我怎么能解压缩所有的ZIP文件在当前文件夹通过shell?
使用Ubuntu Linux服务器。
我有一个ZIP文件目录(在Windows机器上创建的)。我可以手动解压缩他们使用unzip文件名,但我怎么能解压缩所有的ZIP文件在当前文件夹通过shell?
使用Ubuntu Linux服务器。
当前回答
如果文件是gzip的。然后使用:
gunzip -rfk .
从根目录通过保留原始文件(或删除-k删除它们)来递归地提取各自目录中的文件。
其他回答
Use
sudo apt-get install unzip
unzip file.zip -d path_to_destination_folder
在Linux中解压缩一个文件夹
只需输入一些引号来转义通配符:
unzip "*.zip"
解压缩所有。zip文件,并将内容存储在与。zip文件同名的新文件夹中:
find . -name '*.zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
这是@phatmanace的回答的延伸,并解决了@RishabhAgrahari的评论:
这将在当前目录中提取所有的zip文件,如果我想在各自的子文件夹中提取zip文件(目前在子文件夹中)怎么办?
下面是一个没有使用ls的一行程序,它为文件创建了带有zip名称的文件夹。它适用于当前目录中的任何zip。
for z in *.zip; do unzip "$z" -d "${z%".zip"}"; done
你可以把它添加到你的。bashrc
alias unzip_all='for z in *.zip; do unzip "$z" -d "${z%".zip"}"; done'
灵感源自:
方法#2:在https://www.cyberciti.biz/faq/linux-unix-shell-unzipping-many-zip-files/中使用Shell For循环(长版本)从Linux命令行解压多个文件
在任何POSIX shell中,这将为每个zip文件解压缩到不同的目录:
for file in *.zip
do
directory="${file%.zip}"
unzip "$file" -d "$directory"
done