我有一个ZIP文件目录(在Windows机器上创建的)。我可以手动解压缩他们使用unzip文件名,但我怎么能解压缩所有的ZIP文件在当前文件夹通过shell?

使用Ubuntu Linux服务器。


当前回答

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文件夹中。

其他回答

下面的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

要解压缩目录中的所有文件,只需在终端中键入以下命令:

unzip '*.zip'

Use

sudo apt-get install unzip 

unzip file.zip -d path_to_destination_folder

在Linux中解压缩一个文件夹

如果文件是gzip的。然后使用:

gunzip -rfk .

从根目录通过保留原始文件(或删除-k删除它们)来递归地提取各自目录中的文件。

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

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