Bash脚本跳过提取受密码保护的档案

时间:2016-11-14 16:45:03

标签: bash zip password-protection

我有一个脚本,它使用命令在某些文件夹中执行特定zip和\或tar.gz存档的大量提取:

unzip -o "$zip_path" -d "$destination_folder"

不幸的是,当存档受密码保护时,脚本会停止并等待密码输入。

有没有办法省略密码进入阶段以不中断脚本运行?

P.S。无需提取受密码保护的文件。仅省略此档案。 类似的东西:

if "$zip_path" [ determine that archive is password-protected ]; then
echo "Password-protected"
elif "continue script execution"
fi

1 个答案:

答案 0 :(得分:2)

对于zip文件,您可以使用-P标志指定虚拟(错误)密码。 对于非加密文件,它将被忽略, 对于加密文件,您将收到警告,并将跳过该文件。例如:

unzip -P x -o "$zip_path" -d "$destination_folder"

对于tar文件,加密不是标准功能,所以我不确定你的意思。您可以尝试将stdin从/dev/null重定向到脚本,使其无法读取并跳到下一个文件:

tar -xvzf "$tgz_path" --directory "$destination_folder" < /dev/null

如果这不起作用,那么您可以尝试expect