DOS/Windows与众不同,默认不区分大小写,影响了批处理大小写行为。与Linux有别,大部分Unix like操作系统均是大小写敏感。macOS可以选择在制作分区时设定大小写敏感。
Windows
- DOS不区分大小写源于之前的系统也不区分,追溯到远古时期FORTRAN语言也不支持,为什么?因为打孔机位置有限,大写和小写意义一样,为何多增加小写?
- 注意,Windows文件系统是否支持大小写和Windows内核编程语言是否支持大小写无任何关系,文件系统驱动程序控制大小写支持与否,内核编程语言只控制内核代码编译,不控制执行。事实上,Windows内核代码会默认忽略大小写,例如对象访问附加属性OBJ_CASE_INSENSITIVE.
- 因引入WSL,Linux区分大小写。自 Windows 10 内部版本 17107 开始,支持按目录区分大小写,是利用文件系统的setCaseSensitiveInfo属性。使用方式很简单,详情:WSL区分大小写
- fsutil file setCaseSensitiveInfo <path> enable
- 可修改注册表设置大小写敏感。
- HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
