让Cygwin用上大小写敏感的文件系统
通常来说Windows下文件(夹)的名字都不分大小写的,你能看出大小写,但是实际上在编程的时候输入大写小写都能访问,并且就算大小写不同也不能保存两个一样名字的文件(夹)。
对于Cygwin来说这就是个大问题了。因为Linux下文件名是区分大小写的,所以在不分大小写的文件系统下有可能编译一些程序的时候出现错误。Windows的API不区分大小写,但是NTFS文件系统是区分的,我们可以通过更改注册表实现Cygwin下文件名区分大小写。
首先更改注册表,把这个键的值改为0(dword:00000000)
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
然后更改Cygwin的自动挂载
vim /etc/fstab
所有posix=0改成posix=1。
类似这样:
none /cygdrive cygdrive binary,posix=1,user 0 0 C: /cygdrive/c ntfs binary,posix=1,user,auto 0 0 D: /cygdrive/d ntfs binary,posix=1,user,auto 0 0 D:\Project /project ntfs binary,posix=1,user,auto 0 0
然后重启即可。
重启后你再运行Cygwin,你会发现不能大小写混用了。
Howard@Howard-Pad /project $ ls apt-cyg Shadowsocks-FrontStage Shadowsocks-Windows *****tai Downloader Opauth-TencentQQStrategy UUMS ixlab_adminer PHP Public Library WNDR3800 IXNetwork Scripts MoeNetwork Howard@Howard-Pad /project $ cd Apt-Cyg -bash: cd: Apt-Cyg: No such file or directory Howard@Howard-Pad /project $ cd apt-cyg Howard@Howard-Pad /project/apt-cyg $
参考自这篇问答。