创建带密码保护的zip文件时如何跳过交互式密码输入步骤?
解决方案
可以通过自定义shell函数实现你需要的调用形式,zip命令本身提供了-P参数支持直接传递明文密码,不需要交互式输入,你只需要在shell配置中添加以下自定义函数覆盖原生zip命令即可:
zip() { # 匹配你需要的「压缩包名+目录+密码」三参数调用格式 if [ $# -eq 3 ]; then command zip -P "$3" "$1" "$2" else # 其他参数场景走原生zip逻辑,不影响原有功能使用 command zip "$@" fi }
- 将上述函数代码追加到你当前使用的shell的配置文件中:Bash用户修改
~/.bashrc,Zsh用户修改~/.zshrc - 执行
source ~/.bashrc(Zsh用户对应执行source ~/.zshrc)让配置立即生效 - 配置完成后即可直接使用
zip archivename.zip directory_name password的格式创建带密码的压缩包
重要安全提示:通过
-P参数传递密码属于明文传参,你输入的密码会被记录到shell命令历史中,同时同一主机的其他用户可以通过进程查看工具(如ps)读取到该密码,仅建议在个人私有、无其他用户的可信环境下使用该方法,公共环境/生产环境仍推荐使用原生zip -e的交互式输入方式避免密码泄露。
内容的提问来源于stack exchange,提问作者KantSpel
相关产品推荐
相关产品推荐

