无法在 Ubuntu 18.10 上提取 OneDrive ZIP 文件

Tan*_*Vij 9 archive

所以我从 OneDrive 下载了一个 45 gig 的目录,它以 zip 文件的形式保存在我的 Ubuntu VM 上。

现在,当我尝试通过 GUI 提取它时,它给我一个错误,说存档为空。

当我尝试unzip通过终端使用该命令时,它给了我一个错误:

警告 [Archive.zip]:43855246100 额外字节在 zipfile 的开头或内部(无论如何都在尝试处理)

错误 [Archive.zip]:未找到中央目录的开头;压缩文件损坏。

(请检查您是否以适当的 BINARY 模式传输或创建了 zipfile,并且您是否已正确编译 UnZip)

/sf/ask/1900582351/

从上面的链接我了解到,对于大于 4 演出的档案,解压缩失败。

所以我尝试了多种其他选项,例如tar xvf, jar xf,7z x

  1. 对于tar xvf,我得到

tar:这看起来不像 tar 档案

tar:跳到下一个标题

  1. 对于7z x,存档被提取,但出现以下错误:

标题错误

未确认的存档开始

警告

存档结束后还有数据

此外,原始(下载的)zip 文件中应该有一些 .rar 文件,这些文件在提取的位置中丢失了。

  1. 对于jar xf,我收到错误消息:

JAR 文件错误!(未压缩,但数据描述。)

当我尝试跑步时zip -T Archive.zip,我得到

找不到 Archive.z01

按 c (更改此拆分文件所在的路径)

q(中止存档 - 退出)

或 ENTER(尝试再次阅读此拆分):

OneDrive 是否可能给了我损坏的存档?

joh*_*han 5

我知道这个问题是一年多前发布的,但是在遇到看起来完全相同的问题后,我也许能够提供一些答案。造成此互操作性问题的最可能原因是 OneDrive 对 ZIP64 扩展的实现,更准确地说是“中央目录定位器的 zip64 端”中的“磁盘总数”字段的值。在 OneDrive 文件中,该值设置为 0(零),而大多数阅读器工具期望值为 1。

有关更多信息,请参阅我在博客上发布的详细文章:

https://www.bitsgalore.org/2020/03/11/does-microsoft-onedrive-export-large-ZIP-files-that-are-corrupt

如果您对十六进制编辑感到满意,您可以通过更改十六进制编辑器中“磁盘总数”字段的第一个字节来临时“修复”受影响的文件,有关详细信息,请再次参阅我的博客文章。

更新:部分是由我的博客文章提示的,有人编写了一个 Perl 脚本来自动修复这些文件,请参阅此链接了解更多详细信息:

https://unix.stackexchange.com/a/590034

直接链接到脚本:

https://github.com/pmqs/Fix-OneDrive-Zip

此外,微软的这个支持页面说(从顶部开始的第三个“注释”部分):

下载受到以下限制: 单个文件大小限制:10GB;zip 文件总大小限制:20GB;文件总数限制:10,000。

因此,对于 45 GB 的目录,您也可能会达到这些大小限制。

  • 请注意,`uzip` [在版本 6.10c 中对此进行了修复](https://sourceforge.net/p/infozip/bugs/42/#3caa),但尚未找到它进入 ubuntu 存储库的方式,其中 [查看版本 6.0](https://packages.ubuntu.com/focal/unzip)。感谢@johan 为此所做的所有辛勤工作! (2认同)