我需要创建一个 shell 脚本,我将在其中解压缩受密码保护的 zip 文件。我知道密码,需要自动解压过程。
如何使用 Unix shell 脚本实现这一点?
unzip -P your-password zipfile.zip
-P 密码
使用密码解密加密的 zip 文件条目(如果有)。这是不安全的!许多多用户操作系统为任何 用户查看任何其他用户的当前命令行;即使在 独立系统总是存在越肩的威胁 偷看。将明文密码作为命令行的一部分存储在 自动化脚本更糟。尽可能使用 非回声,交互式提示输入密码。 (还有哪里 安全性真的很重要,使用强大的加密,例如 Pretty Good 隐私而不是标准提供的相对较弱的加密 压缩文件实用程序。)
在 Ubuntu 中,我必须使用以下命令安装 7zip (7z) 归档工具:
sudo apt-get install p7zip-full
然后,您可以使用 Ubuntu 的默认Archive Manager 来解压受密码保护的 zip 文件
我在使用
unzip
说 need PK compat. v5.1 (can do v4.6)
时遇到了问题。
安装 p7zip
并使用以下命令解压缩:
7z x archive.zip -ppassword
要解压缩多个受密码保护的文件,此命令将不起作用
unzip -P PASSWORD *.zip
要使其工作,您需要将
*.zip
括在引号中,因为每当您使用通配符 (*) 时,shell 本身都会扩展它并将结果传递给程序。这是因为,与 UNIX 中的大多数程序不同,unzip 一次不能处理多个文件。
在这里阅读更多https://chrisjean.com/unzip-multiple-files-from-linux-command-line/.
因此,要解压多个受保护的文件,使用这个
unzip -P PASSWORD '*.zip'
请按照以下说明进行操作,我已经按照这些步骤解决了同样的问题。
sudo apt install p7zip-full
7z x example.zip
访问以下网址:了解更多详情
在多次用头撞墙之后,这是我的两分钱。
如果您收到的密码包含特殊字符,例如$; \ 等等,你的 shell 终端可能会将它解释为 shell 特殊符号的一部分,而不是你想要的密码字符串。
解决方法很简单,把密码用单引号括起来!
7z x [yourzipfile] -P'your$pass;word!'
我希望这能帮助您节省时间,因为您的压缩/解压缩加密密码突然似乎不起作用!