cygwin下区分文件名大小写

2014-7-10 lqy linux

需求:
cygwin下能够区分文件名大小写,比如JIN.txt和jin.txt能够在同一个目录下共存
背景知识:
1.windows NT以上的kernel可以支持case-sensitivity,但默认没有开启
2.windows下只有ntfs和nfs可以支持case-sensitivity
3.win32 subsystem不支持case-sensitivity,也即win32 API不支持case-sensitivity
4.要让windows下应用程序支持case-sensitivity,必须做到:
(1)使用ntfs或nfs的文件系统
(2)不使用win32 API,使用比如posix API

解决办法:
(1)修改windows注册表,让windows kernel支持case-sensitivity:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
obcaseinsensitive设为0
(2)修改cygwin的/etc/fstab文件
将"posix=0"改为"posix=1"
这样做应该是让cygwin使用posix api,而不使用win32 api
(3)在cygwin下,在ntfs的文件系统下,在同一个目录下,执行:
# touch JIN.txt
# touch jin.txt
就可以看到JIN.txt和jin.txt 这两个文件了
注意:

但是在windows下,在ntfs的文件系统下,我们还是不能同时创建JIN.txt和jin.txt,原因在于我们创建时使用的是win32 API,而win32 API是大小写不敏感的,所以会创建失败

转自:http://www.linux2web.net/?p=540

发表评论:

Powered by emlog