我有一个脚本,它使用命令在某些文件夹中执行特定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
答案 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
。