Win10文件系统区分大小写和支持符号链接

时间:2024-03-05 21:28:17

Windows常用的文件系统FAT或NTFS与Linux文件系统ext4之间的不兼容性主要体现在以下两点:

1. Windows文件系统不区分大小写,Linux是区分的。

2. Windows文件系统不支持symlink,Linux是支持的,而且用的很多。

这两个不兼容性对于在windows下编辑linux代码带来很多麻烦。随着Win10的到来,这两个局限性会迎刃而解。

 

1. Windows 10 下启用文件区分大小写功能。前提是,必须是windows 10 1803及以后的版本,且必须是NTFS文件系统。

(1)首先需要enable linux subsystem,以administrator运行powershell然后执行

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

执行完后系统会重起,而且第一次启动时间很长,慢慢等。

(2)依然以administrator身份运行powershell 或cmd窗口,并执行:

fsutil file setCaseSensitiveInfo C:\direcotry_name enable

如果要取消,把enable 改为disable即可。

 

2. Windows10已支持符号链接,但是默认只开放给Administrator,非Administrator用户,需要授予Create Symble Link 权限才能使用,可通过以下方法之一实现:

  • Local Group Policy Editor: Launch gpedit.msc, navigate to Computer Configuration - Windows Settings - Security Settings - Local Policies - User Rights Assignment and add the account(s) to the list named Create symbolic links.

  • Local Security Policy: Launch secpol.msc, navigate to Local Policies - User Rights Assignment and add the account(s) to the list named Create symbolic links.

  • Polsedit: Launch polseditx32.exe or polseditx64.exe (depending on your Windows version), navigate to Security Settings - User Rights Assignment and add the account(s) to the list named Create symbolic links.

windows下创建软链接的方法:

mklink /d this-link-points-to c:\that-directory #for dictory
mklink this-link-points-to c:\that-file         #for file

实践表明修改权限后,需要重启系统才能生效。

3. windows下git 保持符号链接.
git for windows也是支持符号链接的。但默认是关闭的,因此需要手动打开,比如在clone时加上参数: -c symlinks=true。
git clone -c symlinks=true repo_url
个人理解也可以通过git config --global core.symlinks true来打开。

 [References]

1.  https://github.com/MicrosoftDocs/windowsserverdocs/issues/977

2.  https://github.com/git-for-windows/git/wiki/Symbolic-Links