linux下解压大于2G的zip文件

作者:iamlaosong

最近一次导入结算数据后,查询结算数据时发现有些数据居然没有,非常奇怪。这个数据导入是先解压压缩包,再用sqlldr导入,查看解压后的数据文件,发现没有转运数据文件,而压缩包中是有的。手工解压压缩包,发现解压到陆运数据文件时报出写入错误,然后解压操作就停止了,所以不仅陆运数据文件数据不全,后面的转运数据文件也没有解压出来。

linux下解压大于2G的zip文件

发生写入错误,而且不是磁盘满了,什么原因呢?在Windows下解压这个文件,发现陆运数据文件很大,超过2G,隐约觉得这是个问题,上网查询果然unzip是不能解压超过2G文件的。要解压,需要其它工具。据说这是由于C库中long类型数据所能表示的文件偏移在32位机子上只能有2G。所以如果要解压大文件,需要使用p7zip。

下载p7zip软件,下载地址是http://sourceforge.net/projects/p7zip/files/把这个文件直接下载到服务器上,或者先下载到本地电脑,再上传到Linux服务器上。

点击上面网址,登录网站,点击p7zip,选择版本点击下载(我选择最新版本16.02),注意不要下载源程序:

linux下解压大于2G的zip文件

点击下载,下载后的文件是:p7zip_16.02_x86_linux_bin.tar.bz2

将这个文件夹上传到Linux服务器上。用bzip2解压该文件,再用tar解包:
bzip2 -d p7zip_16.02_x86_linux_bin.tar.bz2
tar -xvf  p7zip_16.02_x86_linux_bin.tar

进入文件夹p7zip_16.02,脚本加执行权限,执行 ./install.sh

linux下解压大于2G的zip文件
执行7za可以看到帮助提示,安装成功。

接着就可以使用 7za命令解压.zip文件了。
如:  7za x 20190930*.zip

linux下解压大于2G的zip文件