在 Linux 上解压文件而不使用 `unzip` 来解压 Windows 上压缩的文件

在 Linux 上解压文件而不使用 `unzip` 来解压 Windows 上压缩的文件

当我unzip在 Red Hat Enterprise Linux (RHEL) 中使用来压缩在 Windows 10 64 位系统上创建的 8.8Gb zip 文件时,出现错误bad CRC eb71d36a (should be b0968d02)。zip 文件中的单个文本文件确实被提取,但已损坏。

我可以使用 7z 在 Windows 10 64 位计算机上解压完全相同的 zip 文件,没有任何问题,然后sftp将该scp文件解压到同一台 RHEL 计算机上,一切正常。但是,这不是一个可行的长期解决方案。

以下网站记录了此错误的几乎相同的详细信息:

  1. https://bbs.archlinux.org/viewtopic.php?id=153011
  2. https://centos.org/forums/viewtopic.php?f=14&t=5451&sid=99b599f3615126e1dc48d671468336d8&start=10

它们似乎都记录了 unzip 中未解决的错误。

所以问题是:从 RHEL bash shell 中,如何在不使用的情况下解压缩在 Windows 10 64 位系统上压缩的大型 zip 文件unzip

我尝试了以下操作,但产生了显示的错误:

$ gunzip -S .zip largefile.zip
gzip: largefile.zip: first entry not deflated or stored -- use unzip
$ jar -xvf largefile.zip
java.util.zip.ZipException: invalid compression method
        at java.util.zip.ZipInputStream.read(ZipInputStream.java:224)
        at java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:139)
        at sun.tools.jar.Main.extractFile(Main.java:1015)
        at sun.tools.jar.Main.extract(Main.java:924)
        at sun.tools.jar.Main.run(Main.java:264)
        at sun.tools.jar.Main.main(Main.java:1231)

Linux 版本

$ lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 7.3 (Maipo)
Release:        7.3
Codename:       Maipo

解压版本

$ unzip -v
UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.

Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip/ ;
see ftp://ftp.info-zip.org/pub/infozip/UnZip.html for other sites.

Compiled with gcc 4.8.5 20150623 (Red Hat 4.8.5-4) for Unix (Linux ELF) on Apr 15 2016.

答案1

您的 RHEL 服务器上有 7z 吗?否则,您可以使用它来提取 zip 文件。

7z e archive.zip

相关内容