Bash:找到所有zip文件,用密码解压缩

时间:2018-04-03 21:49:18

标签: bash

我有一个目录,其中包含一堆使用相同密码加密的zip存档(与其他文件混合在一起)。我想找到所有的zip文件并将它们解压缩到zip文件所在的目录中。

到目前为止,我有:

find -type f -name "*.zip" -exec sh -c 'unzip -pPASSWORD -d `dirname {}` {}' ';'

但是我收到了错误

error:  must specify directory to which to extract with -d option

所有帮助表示赞赏。谢谢

1 个答案:

答案 0 :(得分:1)

试试这个,也看看我在脚本中的评论它将如何运作: -

find -type f -name "*.zip" > zipfiles.txt

while read zipfilePath
do
   directorypath=${zipfilePath%/*}
   #get the path and separate the zipfile name
   zipfile=${zipfilePath##*/}
   #get the zipfile name from path
   cd $directorypath
   unzip -pPASSWORD $zipfile
done < zipfiles.txt
rm -rf zipfiles.txt