在 Linux 上“Mac 风格”解压

在 Linux 上“Mac 风格”解压

我正在使用 Linux Mint MATE 版本,以防相关。

我不知道这是否是 Dropbox 特有的,但是当我从 Dropbox 下载最初在 Mac 上生成的文件夹(并且有很多嵌套子文件夹)的 zip 并将其解压到我的 Linux 机器上时,它完全混乱了up:所有文件夹都有一个副本,其名称的小写版本,并且子文件出现在副本中而不是原始文件中。如果我的一位拥有 Mac 的同事解压了相同的 zip,那就没问题了。

这就是我应该得到的:

在此输入图像描述

这就是我实际得到的:

在此输入图像描述

我的猜测是,这在某种程度上与 Mac 的文件名不区分大小写这一事实有关,因此文件系统元数据之间存在一些奇怪的不兼容性,或者其他什么。

有谁知道 linuz 解压缩工具可以复制 Mac 解压缩器的行为,或者以其他方式产生正确的结果?我不介意它是否将_MACOSX 文件夹留在其中(我可以删除这些文件夹),只要主文件夹没问题即可。

答案1

看起来问题确实在于 zip 文件对目录名称使用了不一致的大小写变体。这正是CIOPFS文件系统的用途:它提供目录树的不区分大小写的视图。有一个 Ubuntu 软件包。通过将 ciopfs 文件系统挂载到临时目录上来创建现有目录的视图,在该视图中解压 zip,然后您将在原始目录中获得提取的存档。

mkdir ~/case-insensitive
ciopfs ~/temp ~/case-insensitive
cd ~/case-insensitive
unzip -x __MACOSX -x '__MACOSX/*' /path/to/zip
cd ~/temp
fusermount -u ~/case-insensitive

如果由于某种原因这不起作用,我的下一个候选人将是Pythonzipfile例子)。

相关内容