Linux解压加密ZIP文件首选交互式输入密码,避免明文传参泄露风险;也可用unzip -P指定密码但存在安全隐患;需确认密码正确性、ZIP加密类型及unzip版本兼容性。

Linux 中解压加密的 ZIP 文件,核心是用 unzip -P 选项指定密码。但要注意:明文传参有安全风险,推荐更稳妥的方式。
直接指定密码(快速但不安全)
命令格式为:unzip -P "密码" archive.zip。例如:
-
unzip -P "123456" secret.zip—— 解压到当前目录 -
unzip -P "123456" data.zip -d ~/documents—— 指定目标目录
⚠️ 密码会出现在命令历史、进程列表和系统日志中,他人可通过 ps aux 或 history 看到,不适用于生产环境或敏感场景。
交互式输入密码(推荐首选)
运行 unzip archive.zip 时,如果压缩包加密,unzip 会自动暂停并提示输入密码:
- 终端显示
password:后,手动键入密码(输入时不显示字符) - 回车确认,验证通过后继续解压
- 此方式密码不会留存于命令行或历史记录中
配合管道或重定向(进阶用法)
若需脚本化处理,可用 echo + unzip -P,但依然暴露密码;更安全的做法是使用 expect 自动化交互,或把密码存入临时文件并设权限:
chmod 600 /tmp/pass.txt && echo "mypwd" > /tmp/pass.txt- 再用
unzip -P "$(cat /tmp/pass.txt)" archive.zip(执行完立即删文件)
常见问题提醒
解压失败时,先确认:
- 密码是否正确(区分大小写、空格)
- ZIP 是否为 AES 加密(老版本 unzip 可能不支持,需升级到 6.0+)
- 是否装了 unzip:Ubuntu/Debian 运行
sudo apt install unzip,CentOS/RHEL 用sudo yum install unzip


















