如何处理 fat32 格式的 USB 驱动器上不允许的 Windows® 字符?

如何处理 fat32 格式的 USB 驱动器上不允许的 Windows® 字符?

我没有 Mac,因此我无法判断文件名中的?内容:……

我对 Dos/Windows® 路径分隔符 特别感兴趣\。我知道在 Linux 中它是一个合法字符,可以在 fat32 文件名中使用(Windows® 将会提示该卷已损坏)。osx
是否也一样?或者运行是否会在父目录中mkdir ..\\dirent创建dirent(仍然是 fat32 的情况,因为我已经知道 hfs 上的行为) ?

当然,我说的是卷通过 Finder 安装的情况。
根据答案,它可能证实流行的源代码管理软件中存在漏洞……

答案1

这是一个有趣的问题,我必须在装有 OS X El Capitan 操作系统的 MacBook 上亲自找到答案。您必须使用查找器(例如文本编辑器)与命令行来区分查找器/应用程序中不允许的字符。

首先,反斜杠“\”在 Finder 和命令行中都像任何普通字符一样。因此,您可以创建像 A\B 这样的文件或目录。问号也是如此。

当涉及到冒号“:”时,事情就变得复杂了。当您在命令行中创建一个名为 A:B 的文件时,它会在命令行中正确创建并显示,但在 Finder 中却显示为 A/B。如果您尝试在 Finder 中创建一个包含冒号的文件,如 C:D,则会收到错误“名称 C:D 无法使用。请尝试使用字符较少或没有标点符号的名称。”

可以在命令行中创建以点“.”开头的文件或目录,没有问题。但由于这些文件和目录用于隐藏文件和目录,因此您无法在 Finder 中创建它们。相反,您将收到一个错误窗口,提示“您不能使用以点“.”开头的名称,因为这些名称是为系统保留的。请选择其他名称。”如果您执行该命令

mkdir ..\\dirent

在命令行上,这将创建名为

..\\dirent 

dirent在当前目录中,因此不是在父目录中调用的目录。

顺便说一句:我用 fat32 格式的 USB 驱动器对此进行了测试,但即使我使用 NTFS 格式的外部硬盘驱动器或内部 HFS+ 格式的内部 SSD 驱动器,它的行为也是一样的。

如果我在 Windows 资源管理器(使用 Windows 10)中查看所有这些文件和目录(我在 MacBook 上写入 USB 记忆棒的这些文件和目录),则反斜杠、冒号和问号的显示方式与 MacBook 上的不同,每个字符都带有相同的特殊字符,我无法在键盘上创建这些字符,也无法正确复制和粘贴 - 在此窗口中粘贴会创建“”,它看起来不像 Windows 资源管理器中显示的字符。在 Windows 资源管理器中,它看起来类似于点“。”,但这个点位于常规点的上方,因此垂直位于中间。

我希望能帮到你。

相关内容