我确实有一个 36GB 的 .zip 文件需要解压,在解压缩时,由于文件滚轮和新安装的 Ubuntu (20.04) 中的 unzip 命令出现 oom(内存不足),该文件最终会冻结 PC。
我也尝试过:
使用 Windows 资源管理器和官方 7-Zip 二进制文件在 Windows 中提取 36GB .zip,效果非常好。然后在 Windows 上使用 .7z 格式再次使用 7-Zip 压缩文件,并确保字典大小足够小,即使具有 512MB RAM 的 Raspberry Pi 也不会耗尽内存,因为 8MB 字典大小意味着使用 LZMA1 解压缩只需要大约 128MB 的 RAM。
虽然提取在旧 PC(2GB RAM、最小大小的 pagefile.sys、Windows 10)中的 Windows 中按预期工作,但在使用 file-roller 和具有 8GB 交换空间的 8GB RAM PC 上的 Ubuntu 中仍然会失败还有 7z 命令,因为我遇到了 oom 情况。
我还注意到,虽然 Ubuntu 中的情况按计划进行了一段时间(例如,仅使用所需的少量 RAM,大约 128MB),但情况会突然变坏,RAM 将在不到30 秒后出现 oom,而 8GB 中只能使用 1GB 交换空间。
在 Debian 上执行相同的 .zip 和 .7z 提取,但仍然失败。
我还第一次遇到了 oom 问题,tracker-extract
在提取时 RAM 飙升,这是gnome-photo
索引器。因此,在面对这里的主要问题之前,删除任何tracker*
软件包就已经解决了问题的一半。
所以问题是:为什么在 Linux 中解压缩巨大的 .zip 或 .7z 与 Windows 不同?
更新1:
问题已基本解决(查找评论,这主要是工作目录问题,使用一些tmps
而不是输出文件夹,但我必须继续进行测试以完全确认一切。简而言之:使用了一个允许您更改的存档器工作文件夹,例如 xarchiver 或 PeaZip。