Linux下解压超过4G的zip文件

从Windows平台通过FTP上传一个大小约为6G的zip文件到Linux系统(Oracle Linux Server release 5.7)上,解压过程中出现如下错误:

   1: [root@gsp tmp]# unzip -n OracleLinuxandPataches.zip -d /u02/tmp

   2: error:  Zip file too big (greater than 4294959102 bytes)

   3: Archive:  OracleLinuxandPataches.zip

   4: warning [OracleLinuxandPataches.zip]:  2107863523 extra bytes at beginning or within zipfile

   5:   (attempting to process anyway)

   6: error [OracleLinuxandPataches.zip]:  start of central directory not found;

   7:   zipfile corrupt.

   8:   (please check that you have transferred or created the zipfile in the

   9:   appropriate BINARY mode and that you have compiled UnZip properly)

                                                                                                 截图如下

                     Linux下解压超过4G的zip文件

从网上搜索了一下相关资料,发现是当前的unzip版本不支持4G以上的压缩包。要么升级到最新版本的unzip,要么使用7-Zip forLinux版本的的p7zip。

如下所示,当前的unzip版本为5.52

   1: [root@gsp database]# unzip -v

   2: UnZip 5.52 of 28 February 2005, by Info-ZIP.  Maintained by C. Spieler.  Send

   3: bug reports using http://www.info-zip.org/zip-bug.html; see README for details.

   4:  

   5: Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip/ ;

   6: see ftp://ftp.info-zip.org/pub/infozip/UnZip.html for other sites.

   7:  

   8: Compiled with gcc 4.1.2 20080704 (Red Hat 4.1.2-44) for Unix (Linux ELF) on Apr  8 2009.

   9:  

  10: UnZip special compilation options:

  11:         COPYRIGHT_CLEAN (PKZIP 0.9x unreducing method not supported)

  12:         SET_DIR_ATTRIB

  13:         TIMESTAMP

  14:         USE_EF_UT_TIME

  15:         USE_UNSHRINK (PKZIP/Zip 1.x unshrinking method supported)

  16:         USE_DEFLATE64 (PKZIP 4.x Deflate64(tm) supported)

  17:         VMS_TEXT_CONV

  18:         [decryption, version 2.9 of 05 May 2000]

  19:  

  20: UnZip and ZipInfo environment options:

  21:            UNZIP:  [none]

  22:         UNZIPOPT:  [none]

  23:          ZIPINFO:  [none]

  24:       ZIPINFOOPT:  [none]

于是我从http://sourceforge.net/projects/p7zip/files/p7zip/上下载了p7zip_9.20.1_src_all.tar.bz2 安装包文件。

   1: [root@gsp tmp]# tar -xjpf   p7zip_9.20.1_src_all.tar.bz2

   2: [root@gsp tmp]cd p7zip_9.20.1

   3: [root@gsp p7zip_9.20.1]# make && make install

   4: mkdir -p bin

   5: make -C CPP/7zip/Bundles/Alone all

   6: make[1]: Entering directory `/u02/tmp/p7zip_9.20.1/CPP/7zip/Bundles/Alone'

   7: g++ -O -pipe -s -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../../myWindows/myGetTickCount.cpp

   8: make[1]: g++: Command not found

   9: make[1]: *** [myGetTickCount.o] Error 127

  10: make[1]: Leaving directory `/u02/tmp/p7zip_9.20.1/CPP/7zip/Bundles/Alone'

  11: make: *** [7za] Error 2

  12:  

结果安装过程中出现上面错误,出现上面错误是因为这台服务器是刚安装的测试服务器,还没有安装gcc和gcc-c++包。

   1: [root@gsp Server]# rpm -q gcc gcc-c++

   2: package gcc is not installed

   3: package gcc-c++ is not installed

于是配置YUM源后,安装gcc 和 gcc-c++

   1: [root@gsp yum.repos.d]# more rhel-debuginfo.repo 

   2: [rhel-debuginfo]

   3:  

   4: name=Red Hat Enterprise Linux LOCAL SOURCE

   5:  

   6: baseurl=file:///mnt/cdrom/Server

   7:  

   8: enabled=1

   9:  

  10: gpgcheck=0

  11:  

  12:  

  13:  

  14: [root@gsp yum.repos.d]# yum install gcc

  15: Loaded plugins: rhnplugin, security

  16: This system is not registered with ULN.

  17: ULN support will be disabled.

  18: Setting up Install Process

  19: Resolving Dependencies

  20: --> Running transaction check

  21: ---> Package gcc.x86_64 0:4.1.2-51.el5 set to be updated

  22: --> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc

  23: --> Running transaction check

  24: ---> Package glibc-devel.x86_64 0:2.5-65 set to be updated

  25: --> Processing Dependency: glibc-headers = 2.5-65 for package: glibc-devel

  26: --> Processing Dependency: glibc-headers for package: glibc-devel

  27: --> Running transaction check

  28: ---> Package glibc-headers.x86_64 0:2.5-65 set to be updated

  29: --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers

  30: --> Processing Dependency: kernel-headers for package: glibc-headers

  31: --> Running transaction check

  32: ---> Package kernel-uek-headers.x86_64 0:2.6.32-200.13.1.el5uek set to be updated

  33: --> Finished Dependency Resolution

  34:  

  35: Dependencies Resolved

  36:  

  37: ====================================================================================================================================

  38:  Package                           Arch                  Version                                Repository                     Size

  39: ====================================================================================================================================

  40: Installing:

  41:  gcc                               x86_64                4.1.2-51.el5                           rhel-debuginfo                5.3 M

  42: Installing for dependencies:

  43:  glibc-devel                       x86_64                2.5-65                                 rhel-debuginfo                2.4 M

  44:  glibc-headers                     x86_64                2.5-65                                 rhel-debuginfo                594 k

  45:  kernel-uek-headers                x86_64                2.6.32-200.13.1.el5uek                 rhel-debuginfo                724 k

  46:  

  47: Transaction Summary

  48: ====================================================================================================================================

  49: Install       4 Package(s)

  50: Upgrade       0 Package(s)

  51:  

  52: Total download size: 9.0 M

  53: Is this ok [y/N]: y

  54: Downloading Packages:

  55: ------------------------------------------------------------------------------------------------------------------------------------

  56: Total                                                                                               2.6 GB/s | 9.0 MB     00:00     

  57: Running rpm_check_debug

  58: Running Transaction Test

  59: Finished Transaction Test

  60: Transaction Test Succeeded

  61: Running Transaction

  62:   Installing     : kernel-uek-headers                                                                                           1/4 

  63:   Installing     : glibc-headers                                                                                                2/4 

  64:   Installing     : glibc-devel                                                                                                  3/4 

  65:   Installing     : gcc                                                                                                          4/4 

  66:  

  67: Installed:

  68:   gcc.x86_64 0:4.1.2-51.el5                                                                                                         

  69:  

  70: Dependency Installed:

  71:   glibc-devel.x86_64 0:2.5-65        glibc-headers.x86_64 0:2.5-65        kernel-uek-headers.x86_64 0:2.6.32-200.13.1.el5uek       

  72:  

  73: Complete!

  74: [root@gsp yum.repos.d]# yum install gcc-c++

  75: Loaded plugins: rhnplugin, security

  76: This system is not registered with ULN.

  77: ULN support will be disabled.

  78: Setting up Install Process

  79: Resolving Dependencies

  80: --> Running transaction check

  81: ---> Package gcc-c++.x86_64 0:4.1.2-51.el5 set to be updated

  82: --> Processing Dependency: libstdc++-devel = 4.1.2-51.el5 for package: gcc-c++

  83: --> Running transaction check

  84: ---> Package libstdc++-devel.x86_64 0:4.1.2-51.el5 set to be updated

  85: rhel-debuginfo/filelists                                                                                     | 3.1 MB     00:00     

  86: --> Finished Dependency Resolution

  87:  

  88: Dependencies Resolved

  89:  

  90: ====================================================================================================================================

  91:  Package                           Arch                     Version                          Repository                        Size

  92: ====================================================================================================================================

  93: Installing:

  94:  gcc-c++                           x86_64                   4.1.2-51.el5                     rhel-debuginfo                   3.8 M

  95: Installing for dependencies:

  96:  libstdc++-devel                   x86_64                   4.1.2-51.el5                     rhel-debuginfo                   2.8 M

  97:  

  98: Transaction Summary

  99: ====================================================================================================================================

 100: Install       2 Package(s)

 101: Upgrade       0 Package(s)

 102:  

 103: Total download size: 6.6 M

 104: Is this ok [y/N]: y

 105: Downloading Packages:

 106: ------------------------------------------------------------------------------------------------------------------------------------

 107: Total                                                                                               3.5 GB/s | 6.6 MB     00:00     

 108: Running rpm_check_debug

 109: Running Transaction Test

 110: Finished Transaction Test

 111: Transaction Test Succeeded

 112: Running Transaction

 113:   Installing     : libstdc++-devel                                                                                              1/2 

 114:   Installing     : gcc-c++                                                                                                      2/2 

 115:  

 116: Installed:

 117:   gcc-c++.x86_64 0:4.1.2-51.el5                                                                                                     

 118:  

 119: Dependency Installed:

 120:   libstdc++-devel.x86_64 0:4.1.2-51.el5                                                                                             

 121:  

 122: Complete!

 123: [root@CEG-eSCM yum.repos.d]# 

 124:  

然后使用[root@gsp p7zip_9.20.1]# make && make install安装好p7zip后,使用7za x OracleLinuxandPataches.zip成功解压该zip压缩文件。

   1: [root@gsp tmp]# 7za x OracleLinuxandPataches.zip 

   2:  

   3: 7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

   4: p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

   5:  

   6: Processing archive: OracleLinuxandPataches.zip

   7:  

   8: Extracting  Oracle Linux and Pataches

   9: Extracting  Oracle Linux and Pataches/OEL5.7_x85-64

  10: Extracting  Oracle Linux and Pataches/OEL5.7_x85-64/V27570-01.zip

  11: Extracting  Oracle Linux and Pataches/ora10gr2

  12: Extracting  Oracle Linux and Pataches/ora10gr2/10201_companion_linux_x86_64[1].cpio.gz

  13: Extracting  Oracle Linux and Pataches/ora10gr2/10201_database_linux_x86_64[1].cpio.gz

  14: Extracting  Oracle Linux and Pataches/ora10gr2/instruction.doc

  15: Extracting  Oracle Linux and Pataches/ora10gr2/p6810189_10204_Linux-x86-64.zip

  16: Extracting  Oracle Linux and Pataches/ora10gr2/p6810189_Oracle庐 Database Patch Set Notes.htm

  17: Extracting  Oracle Linux and Pataches/ora10gr2/p6810189_Oracle庐 Database Patch Set Notes_files

  18: Extracting  Oracle Linux and Pataches/ora10gr2/p6810189_Oracle庐 Database Patch Set Notes_files/oracle.gif

  19:  

  20: Everything is Ok

  21:  

  22: Folders: 4

  23: Files: 7

  24: Size:       6403564486

  25: Compressed: 6402832490

  26: [root@gsp tmp]# 

上一篇:js中的运算符和条件语句


下一篇:c#之依赖注入