linux下解壓大於2G的zip文件

作者:iamlaosong

最近一次導入結算數據後,查詢結算數據時發現有些數據居然沒有,非常奇怪。這個數據導入是先解壓壓縮包,再用sqlldr導入,查看解壓後的數據文件,發現沒有轉運數據文件,而壓縮包中是有的。手工解壓壓縮包,發現解壓到陸運數據文件時報出寫入錯誤,然後解壓操作就停止了,所以不僅陸運數據文件數據不全,後面的轉運數據文件也沒有解壓出來。

發生寫入錯誤,而且不是磁盤滿了,什麼原因呢?壓縮包本身並不大,也就200多兆,在Windows下解壓這個壓縮包,發現陸運數據文件很大,超過2G(2.8G),隱約覺得這是個問題,上網查詢果然unzip是不能解壓超過2G文件的,現在看來,不僅是壓縮包超過2G不行,壓縮包內文件超過2G也是不行的。要解壓,需要其它工具。據說這是由於C庫中long類型數據所能表示的文件偏移在32位機子上只能有2G,可我的機子是64位的。這個理由是不是在描述有什麼問題或者我理解的有偏差,這個並不重要,重要的是怎麼解壓大文件,方法之一是使用軟件7zip。

下載7zip軟件,下載地址是:http://sourceforge.net/projects/p7zip/files/

把這個文件直接下載到服務器上,或者先下載到本地電腦,再上傳到Linux服務器上。

點擊上面網址,登錄網站,點擊p7zip,選擇版本點擊下載(我選擇最新版本16.02),注意不要下載源程序:

點擊下載,下載後的文件是: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


執行7za可以看到幫助提示,安裝成功。

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

最後,修改腳本,將unzip換成7za x就可以了,如下圖:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章