linux系统中使用「unzip」指令时出现「unsupported compression method 99」的问题解决

本文讲述了如何处理WinRAR或WinZIP使用AES加密导致的ZIP文件无法用unzip解压的问题,通过安装7z命令并更新EPEL库来解决,最后给出使用7z指令进行解压的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  这是由于WinRAR或WinZIP在替ZIP压缩档加上密码时,缺省使用的加密方式是「AES」的关系,而不是ZIP传统的加密方式。若遇到这类的ZIP压缩文件,就无法使用「unzip」指令来解压缩了,只能够使用「7z」指令。

安装7z命令的方法如下:

sudo yum install p7zip
sudo yum install p7zip-plugins

若出现了下面的问题:

没有可用软件包 xxxx。
错误:无须任何处理

这个就是没有软件包,直接更新epel第三方软件库,命令如下:

yum install -y epel-release

更新后再去安装7z相关软件包,安装好后执行以下命令进行解压zip文件操作

7z x 待解压文件名

此时就可正常执行解压了

### Linux 下解压带密码的 ZIP 文件方法 在 Linux 系统中,可以使用多种工具来解压带有密码保护的 ZIP 文件。以下是几种常见且有效的方法: #### 方法一:`unzip` 工具 `unzip` 是一种常用的解压工具,在处理带密码的 ZIP 文件非常方便。当尝试解压加密的 ZIP 文件,如果不直接提供密码,则会在终端提示输入密码。 ```bash unzip filename.zip ``` 运行此命令后,如果文件受密码保护,系统会弹出如下提示: ``` archive: filename.zip [filename.zip] file.txt password: ``` 此只需手动输入密码即可完成解压操作[^1]。 需要注意的是,某些情况下可能会遇到错误消息 `unsupported compression method 99`,这通常是因为压缩算法不受支持或者文件本身存在问题。这种情况下建议切换到其他工具如 `p7zip` 或者更新版本的 `unzip`[^2]。 #### 方法二:`p7zip` 工具 对于复杂场景或特殊格式的 ZIP 文件,推荐使用功能强大的开源软件 `p7zip`。它能够很好地兼容各种类型的压缩文件,并且同样支持带密码的 ZIP 文件。 安装 `p7zip` 的方式如下所示: ```bash apt install p7zip-full ``` 接着通过下面这条命令来进行解压工作: ```bash 7z x filename.zip ``` 一旦检测到存在密码保护的情况,程序便会询问用户输入相应密码: ``` Enter password (will not be echoed): ``` 按照指示填写正确的密钥就能顺利展开内容。 另外值得注意的一点是,相比起简单的 `unzip` 来说,`p7zip` 提供了更多选项以及更高的稳定性,尤其是在面对老旧或是非标准制作出来的档案候表现尤为突出。 #### 方法三:利用 `zipinfo` 和高级参数设置 除了以上两种基本手段外,还可以借助于查看器类的应用比如 `zipinfo` 获取更多信息后再决定如何进一步行动;或者是深入研究官方文档了解是否有匹配当前需求的具体开关可用——例如 `-P` 参数可以直接指定密码给脚本调用减少交互次数(不过这种方式安全性较低并不提倡频繁采用)。具体实例可参照手册说明部分[^3]。 总之,在实际应用过程中可以根据具体情况灵活选用合适的解决方案达到目的。 ```python import subprocess def extract_zip_with_password(zip_file_path, output_dir=None): try: result = subprocess.run(['unzip', '-P', 'yourpasswordhere', zip_file_path], cwd=output_dir, check=True) return True if result.returncode == 0 else False except Exception as e: print(f"Error occurred while extracting {zip_file_path}: {str(e)}") return False ``` > **注意**: 上述 Python 示例仅作演示用途,请勿轻易暴露敏感数据! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值