在 shell 脚本中解压缩文件时出错。 - 需要PK兼容。 v5.1(可以做v4.6)

Error while unzipping a file in shell script. - need PK compat. v5.1 (can do v4.6)

我在 Shell 脚本中使用 unzip test.zip。但是在执行这一行时我得到一个错误

Archive:  test.zip
   skipping: hello.pdf                need PK compat. v5.1 (can do v4.6)

即使我在 ubuntu 中尝试从终端 运行 这个单一命令,它也会抛出相同的错误 need PK compat. v5.1 (can do v4.6)

卸载并重新安装 unzip 也无效。或者我必须安装 p7zip-full 来解压缩 test.zip 文件。如何解决此问题并在 shell 脚本中使用 unzip

我认为 "normal" info-zip 的 unzip6.0 只能用于使用 4.6 版本的 ZIP 条目。这描述了解压缩它所需的功能。 unzip 6.0 中最新添加的是 bzip2,它在 4.6 版中有体现。使用 (AES) 强加密功能时获得的 5.1 版本。

您需要使用替代工具,如提到的 7zip(或商业 pkunzip)来解压缩这些文件。当您可以影响创建过程时,然后尝试使用您使用的功能和不使用的功能(即,如果您想与旧版 infozip 工具兼容,请不要要求强密码加密)。

是的,这有点不幸。而且我认为 unzip 已移植到如此多的目标平台,以至于没有人愿意再使用它了。)

在 Debian 中使用 p7zip-full 软件包中的 7z

$ 7z x test.zip

您可以使用 p7zip 执行所需的操作。 使用brew安装。

$ brew install p7zip

使用它来解压缩文件

$ 7z x file.zip

尝试安装 7z sudo apt-get install p7zip-full,然后用它解压文件。

例如:

7z x datafile.zip -aoa -pCR37

参数-p******是密码。

-aoa 允许提取任何现有的本地文件。

您需要安装 7z

  1. 搜索包裹

$ apt search p7zip
....
....

p7zip/focal,now 16.02+dfsg-7build1 amd64 [已安装]
  7zr file archiver with high compression ratio

p7zip-full/focal 16.02+dfsg-7build1 amd64
  7z and 7za file archivers with high compression ratio
...

  1. 你可以看到 p7zip-full/focal 16.02+dfsg-7build1 amd64 是当前的
  2. $ sudo apt install p7zip-full,现在可以运行7z命令,求助7z --help
  3. 解压文件 7z x test.zip -p**** -p 如果文件没有密码,开关没有写入