所以我从 OneDrive 下载了一个 45 gig 的目录,它以 zip 文件的形式保存在我的 Ubuntu VM 上。
现在,当我尝试通过 GUI 提取它时,它给我一个错误,说存档为空。
当我尝试unzip通过终端使用该命令时,它给了我一个错误:
警告 [Archive.zip]:43855246100 额外字节在 zipfile 的开头或内部(无论如何都在尝试处理)
错误 [Archive.zip]:未找到中央目录的开头;压缩文件损坏。
(请检查您是否以适当的 BINARY 模式传输或创建了 zipfile,并且您是否已正确编译 UnZip)
从上面的链接我了解到,对于大于 4 演出的档案,解压缩失败。
所以我尝试了多种其他选项,例如tar xvf, jar xf,7z x
tar xvf,我得到tar:这看起来不像 tar 档案
tar:跳到下一个标题
7z x,存档被提取,但出现以下错误:标题错误
未确认的存档开始
警告
存档结束后还有数据
此外,原始(下载的)zip 文件中应该有一些 .rar 文件,这些文件在提取的位置中丢失了。
jar xf,我收到错误消息:JAR 文件错误!(未压缩,但数据描述。)
当我尝试跑步时zip -T Archive.zip,我得到
找不到 Archive.z01
按 c (更改此拆分文件所在的路径)
q(中止存档 - 退出)
或 ENTER(尝试再次阅读此拆分):
OneDrive 是否可能给了我损坏的存档?
我知道这个问题是一年多前发布的,但是在遇到看起来完全相同的问题后,我也许能够提供一些答案。造成此互操作性问题的最可能原因是 OneDrive 对 ZIP64 扩展的实现,更准确地说是“中央目录定位器的 zip64 端”中的“磁盘总数”字段的值。在 OneDrive 文件中,该值设置为 0(零),而大多数阅读器工具期望值为 1。
有关更多信息,请参阅我在博客上发布的详细文章:
如果您对十六进制编辑感到满意,您可以通过更改十六进制编辑器中“磁盘总数”字段的第一个字节来临时“修复”受影响的文件,有关详细信息,请再次参阅我的博客文章。
更新:部分是由我的博客文章提示的,有人编写了一个 Perl 脚本来自动修复这些文件,请参阅此链接了解更多详细信息:
https://unix.stackexchange.com/a/590034
直接链接到脚本:
https://github.com/pmqs/Fix-OneDrive-Zip
此外,微软的这个支持页面说(从顶部开始的第三个“注释”部分):
下载受到以下限制: 单个文件大小限制:10GB;zip 文件总大小限制:20GB;文件总数限制:10,000。
因此,对于 45 GB 的目录,您也可能会达到这些大小限制。