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 toComputer Configuration - Windows Settings - Security Settings - Local Policies - User Rights Assignment
and add the account(s) to the list namedCreate symbolic links
. -
Local Security Policy: Launch
secpol.msc
, navigate toLocal Policies - User Rights Assignment
and add the account(s) to the list namedCreate symbolic links
. -
Polsedit: Launch
polseditx32.exe
orpolseditx64.exe
(depending on your Windows version), navigate toSecurity Settings - User Rights Assignment
and add the account(s) to the list namedCreate 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