AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 438368
Accepted
kevbonham
kevbonham
Asked: 2018-04-18 10:26:23 +0800 CST2018-04-18 10:26:23 +0800 CST 2018-04-18 10:26:23 +0800 CST

Unix 解压缩失败,但 Mac 存档实用程序有效

  • 772

我有一堆文件,其.zip扩展名似乎无法在我的 HPC 上提取:

$ unzip RowlandMetaG_part1.zip
Archive:  RowlandMetaG_part1.zip
warning [RowlandMetaG_part1.zip]:  13082642473 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [RowlandMetaG_part1.zip]:  start of central directory not found;
  zipfile corrupt.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)

zip 文件本身的大小为 17377631766 字节。

但是,当我将文件下载到我的 mac 并双击时,Archive Utility 应用程序能够解压缩文件(它包含一个包含大约 200 个 gzip 压缩文件的目录)。

生成文件的地方说:

这些文件在我们本地运行 Windows 的实验室 PC​​ 上简单地压缩到这里,然后上传到 Dropbox……大多数人对它们没有任何问题,许多人可以直接将我使用 Linux wget 命令提供的链接直接下载到他们的服务器中,然后在那里解压缩(Linux 实用程序通常可以处理 PC 压缩文件)。

我不确定文件来自保管箱的事实是否相关,但我曾经curl -LO下载过(也尝试过wget- 这不会改变任何东西),并且文件显示?dl=1在文件名的末尾。也就是说,当我从 Dropbox 下载到我的 Mac 时,unzip仍然失败并出现同样的错误。

我的问题 - 有没有办法让它在服务器上解压缩?一些软件可以完成与 Archive Utility.app 相同的事情,或者其他确定使用什么解压缩协议的方法?

编辑:根据评论:一些附加信息:

$ file RowlandMetaG_part1.zip
RowlandMetaG_part3.zip: Zip archive data, at least v2.0 to extract
$ zip --version
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.

另外,我确实尝试过tar,但没有成功。

$ tar -xvf RowlandMetaG_part1.zip
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains `l@\022\t1\fjp\024uP\020' where numeric off_t value expected
tar: Archive contains `\024\311\032b\234\254\006\031' where numeric mode_t value expected
tar: Archive contains `\312\005hЈ\2138vÃ\032p' where numeric time_t value expected
# etc...

我最终在这样的目录中得到废话:

$ ls
???MK??%b???mv?}??????@*??TZ?S?? ??????+??}n>,!???ӟw~?i?(??5?#?ʳ??z0?[?Ed?@?쑱??lT?d???A??T???H??
,??Y??:???'w,??+?ԌU??Wwxm???e~??ZJ]y??ˤ??4?SX?=y$Ʌ{N\?P}x~~?T?3????y?????'
zip archive
  • 5 5 个回答
  • 5381 Views

5 个回答

  • Voted
  1. Marcelo
    2018-04-18T11:40:23+08:002018-04-18T11:40:23+08:00

    有可能,虽然文件以“.zip”结尾,但它不是一个 zip 文件。

    file您可以使用该实用程序确认这是否是一个 zip 文件(同时确定实际文件格式是什么) :

    file RowlandMetaG_part1.zip

    确定文件格式后,您可以使用适当的工具将其取消归档。

    • 4
  2. Best Answer
    kevbonham
    2018-04-20T07:42:45+08:002018-04-20T07:42:45+08:00

    事实证明,由于文件太大,zip无法处理(最大为 2Gb)。相反,我可以使用jar:

    $ jar xvf RowlandMetaG_part1.zip
    inflated: RowlandMetaG_part1/296E-7-26-17-O_S23_L001_R1_001.fastq.gz
    # etc...
    
    • 4
  3. mk_gocs
    2018-04-18T11:33:40+08:002018-04-18T11:33:40+08:00

    尝试使用 tar 实用程序提取它

    tar xvf <file-name>
    

    也许这个链接可能是相关的:

    https://apple.stackexchange.com/questions/208139/how-to-deal-with-unzip-error-on-a-large-file-in-osx

    • 0
  4. Thomas Tempelmann
    2019-11-01T07:02:49+08:002019-11-01T07:02:49+08:00

    我遇到了同样的问题,但无法解决。如果我这样做,我会更新这个答案。

    但是,要弄清楚一些事情:

    您可以相信文件是 zip 文件的 OP。

    Linux 解压缩工具似乎存在的“问题”是文件最后没有中央目录,而是需要按顺序解压缩,而 Linux 工具似乎无法做到这一点。

    从理论上讲,该zip工具应该能够通过选项来解决此问题,该-FF选项按顺序扫描存档,然后从中创建一个新的 zip 文件。然而,事实证明,这不适用于大型(> 4GB)zip - 它会创建另一个不可读的 zip 文件,最后没有中央目录。

    背景:PKZIP归档格式将每个归档项目的信息存储在两个位置:一次在每个压缩流之前(这是强制性的,尽管长度信息可能不正确),另一个时间在所有存储项目列表的末尾,以及这是一种可选的(好吧,根据标准的定义,应该总是有一个,但它也允许通过初始条目进行回退,Apple 的 zip 工具显然就是这样做的)。

    在对该问题进行更多分析之后,我认为问题在于:

    • zip 文件是由 ditto 命令编写的,它是 zip 的略微修改版本,虽然我不知道细节。
    • 有问题的 zip 文件未使用 zip64 格式。
    • 过大文件的本地文件头包含无效大小 (2^32-1)。这就是使解压缩工具感到困惑的地方。
    • 本地文件头的 CRC 值为零。
    • Apple 的存档实用程序可以解压缩此文件,因为它会忽略本地标头中不正确的文件大小,而是解压缩流,直到流发出结束信号(压缩的 gzip 流具有流结束标记)。
    • 0
  5. Joel Ye
    2022-01-20T19:34:23+08:002022-01-20T19:34:23+08:00

    添加一个注释,在我的例子中,tar/jar 都失败了,但是 7zip 有帮助(7z x big.zip)。大文件讨论向我指出了 Apple 堆栈上的这个有用问题,如何处理 OSX 中大文件的解压缩错误?

    • 0

相关问题

  • 从 zip 存档中排除子目录——请解释语法

  • 仅压缩路径中的最后一个目录[重复]

  • 使用 unzip [关闭] 仅解压缩 zip 文件的特定层/级别

  • 如何部分提取压缩的巨大纯文本文件?

  • zip 命令不忽略由 -x 标志标记的项目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve