区分大小写

区分大小写

区分大小写是操作系统特定的标准还是基于文件系统?

我知道在 Windows 中不能有两个同名的文件,但是在 Linux 下,如果字符的大小写不同,则可以。

答案1

事实上,两者皆可。

在 Windows 中,主文件系统 (NTFS) 实际上支持区分大小写。但 shell (explorer) 不允许这样做。

您仍然可以根据 POSIX 规则(访问区分大小写)与文件系统交互,方法是传递适当的标志调用时CreateFile。尽管我们不鼓励这样做,而且在基于 Windows 的系统上也不应该这样做。

命名文件、路径和命名空间

不要假设区分大小写。例如,假设名称 OSCAR、Oscar 和 oscar 相同,即使某些文件系统(如 POSIX 兼容文件系统)可能认为它们不同。请注意,NTFS 支持区分大小写的 POSIX 语义,但这不是默认行为。

答案2

维基百科似乎有一些可靠的信息可以帮助回答您的问题:

在 Unix 文件系统中,文件名通常区分大小写。旧 Windows 文件系统(VFAT、FAT32)不区分大小写(同一目录中不能同时存在 readme.txt 和 Readme.txt),但会保留大小写,即记住字母的大小写。原始 FAT12 文件系统不区分大小写。当前的 Windows 文件系统(如 NTFS)区分大小写;也就是说,readme.txt 和 Readme.txt 可以存在于同一目录中。由于与未设计用于此类操作的旧软件存在兼容性问题,Windows 不允许用户创建仅大小写不同的第二个文件

来源:维基百科

Windows 区分大小写的原因也可以通过以下方式来回答支持文章在这里

作为 POSIX 合规性要求的一部分,Windows NT 文件系统 (NTFS) 提供了区分大小写的文件和目录命名约定。尽管 NTFS 和 POSIX 子系统都能很好地处理大小写问题,但 16 位 Windows、MS-DOS、OS/2 和 Win32 应用程序却不能。

维基百科在此处介绍了该合规性:POSIX. 尽管 Windows 未被列为完全符合 POSIX 标准。

答案3

区分大小写基于文件系统。在 Windows 世界中,FAT、VFAT 和 FAT32 不区分大小写,这意味着foo.txt它们Foo.txt不能作为单独的文件存在于同一目录中。NTFS区分大小写,Linux/UNIX 世界中使用的大多数现代文件系统(EXT2/3/4、ReiserFS、ZFS 等)也是如此。可以与、和其他文件Foo.txt愉快地共存。foo.txtFOO.TXT

相关内容