我知道 Windows 操作系统(通常)不区分大小写。所有 Windows 操作系统(从 Windows 95 到 Windows 7)都是这样吗?是否有任何注册表设置可以使 Windows 区分大小写?
nhi*_*kle 19
是的,这适用于所有版本的 Windows。没有办法让 Windows 区分大小写。请记住,一些最初为 Unix/Linux 开发然后移植的应用程序可能区分大小写。例如,Cygwin 区分大小写。不过这种行为极为罕见。
小智 17
Microsoft 添加了一个新的区分大小写的标志(属性),可以应用于 NTFS 目录(文件夹)。对于设置(启用)此标志的目录,对该目录中文件的所有操作都区分大小写,无论是否指定了 FILE_FLAG_POSIX_SEMANTICS。这意味着,如果您在标记为区分大小写的目录中有两个仅大小写不同的文件,则所有应用程序都可以访问它们。
从Windows 10 build 17107 开始,Microsoft 已在 fsutil.exe 命令中添加了查看和修改此标志的功能。
要检查目录是否区分大小写,请运行以下命令:
fsutil.exe file queryCaseSensitiveInfo <path>
Run Code Online (Sandbox Code Playgroud)
分别将目录标记为区分大小写或不区分大小写:
fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable
Run Code Online (Sandbox Code Playgroud)
sle*_*ske 11
实际上,这取决于您(您的程序)使用的 API/Windows 子系统。
如果您使用“ Windows API ”(Windows 应用程序的标准),则文件名不区分大小写。但是,如果您使用 POSIX 子系统(也称为 Unix 的 Windows 服务),则可以启用区分大小写。
例如,请参阅此 MS 支持文章:使用 Windows XP 和 Interix 子系统或 SFU 启用区分大小写的行为
小智 6
Cygwin 试图模拟 Unix。因此它需要继承区分大小写以不破坏应用程序。Windows 本身不区分大小写。这是关于文件系统的。您可以在文件系统、Microsoft Windows 下的文件系统(维基百科)中阅读有关它的更多信息。
这是从这里开始的。您可以按照其他作者的建议设置HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
注册表值。0
创建一个名为add.reg
以下内容的文件并运行它。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000
Run Code Online (Sandbox Code Playgroud)
然后使用Cygwin处理区分大小写的文件名。
为此,您需要posix=1
使用 中的选项挂载 NTFS 文件系统/etc/fstab
,如本文所示。这是我的片段fstab
:
none /cygdrive cygdrive binary,posix=1,user 0 0
C: /cygdrive/c ntfs binary,posix=1,user,auto 0 0
C:/Users /home ntfs binary,posix=1,user,auto 0 0
Run Code Online (Sandbox Code Playgroud)
完成上述操作后,您将能够使用 、 等处理区分大小写的bash
文件mc
名git
。
确保在编辑两者后重新启动。
归档时间: |
|
查看次数: |
36977 次 |
最近记录: |