松哥的笔记
cygwin下区分文件名大小写
2014-7-10 lqy
需求:

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

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容