Linux中unzip命令解压大文件失败(error:invalid zip file with overlapped components (possible zip bomb))

卡卡南安 2024-06-19 17:37:01 阅读 71

背景

Linux解压文件的过程中,由于压缩包大小过大(>4G),解压过程中出现错误:error:invalid zip file with overlapped components (possible zip bomb)。这个错误提示意味着你的 ZIP 文件可能是一个“ZIP 炸弹”,也就是一个恶意的 ZIP 文件,它会在解压缩时占用大量的系统资源,甚至可能会导致系统崩溃。

解决办法

安装7zip包来进行解压

可以通过命令行来进行在线安装,参考:

Linux中zip解压大压缩包失败

Linux 7zip

linux安装7zip

然而通过远程登陆Linux时,sudo被设置了权限,因此我在本地下载对应的安装包后上传,下载地址:https://www.7-zip.org/download.html

我是64位系统,下载后得到文件:7z2400-linux-x64.tar.xz,运行如下命令解压到名为7zip的文件夹下:tar xf 7z2400-linux-x64.tar.xz -c 7zip/,得到:

在这里插入图片描述

readme.txt中介绍了7zip和常用的解压缩指令,其中提到:

7-Zip和p7zip

===============

现在Linux/macOS上有两个不同的7-Zip端口:

p7zip - Linux上的另一个7-Zip端口,由独立开发者制作。 p7zip的最新版本是16.02,而p7zip的16.02已经过时了。7-Zip for Linux/macOS-这个包-它是新的代码与最新的Windows 7-Zip的所有变化。

这两个端口不完全相同。 还要注意,一些Linux特定的东西在p7zip中可以比在Linux的新7-Zip中更好地实现。

文档中给出的示例:

从当前目录下所有*.txt文件创建zip存档: ./7zz . a archive.zip "*.txt"

列出存档的内容:./7zz l archive.zip

列出档案内容,并为每个档案提供详细的技术资料: ./7zz l archive.zip -slt

解压归档文件到当前目录:./7zz x archive.zip

测试存档并显示每个文件的日志: ./7zz t archive.zip -bb

使用7-Zip的LZMA代码测试CPU性能的基准命令:./7zz b

使用基准测试命令测试CPU不同压缩、加密的性能 和哈希方法从7-Zip和不同的线程数:./7zz b "-mm=*" "-mmt=*"

其中./7zz是可执行文件7zz的地址,比如在上面的地址中./7zz应改为./7zip/7zz

常用解压缩指令请参考:Linux 7zip



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。