windows解压linux符号链接,Git下Windows与Linux符号链接兼容

简介

git for windows增加了符号链接的支持,其大体实现方法为,使用Windows Vista起增加的NTFS符号链接功能,模拟Linux下的符号链接,在使用git管理文件的过程中,由git在不同情况下自动转换。

本文正文翻译自git for windows的wiki文章Symbolic Links[附]。

正文:符号链接

短版本:在Windows下没有和POSIX symlink完全等价的机制,而最为接近的解决办法,在Windows默认的非管理员用户下,是不可使用的。因此,symlink模拟支持默认是关闭的,需要用户手动配置。用户可以通过 core.symlinks=true来配置设置。

背景

从Windows Vista开始,Windows包含了对符号链接的支持。但这不是Unix的符号链接;它们在以下方面有所不同:

符号链接仅在Windows Vista及更新版本中支持,不包含XP。

你需要SeCreateSymbolicLinkPrivilege权限,这一权限默认只有Administrator拥有,但可以通过本地安全策略(Local Security Policy)或通过Active Directory使得普通用户也有这一权限。家庭版的Windows Vista和Windows 7没有本地安全策略,但免费的Polsedit可用于这些版本。注意,即使设置了权限分配,Administrator组的用户仍然需要UAC许可(更多细节在Access Token Change)。

在远程文件系统中,符号链接默认被禁用(可以通过命令fsutil behavior query SymlinkEvaluation来查看)

符号链接仅适用于NTFS,不适用于FAT

Windows下的符号链接是分类型的:它们需要知道它们指向的是文件夹还是文件(因此,Git发现错误时会自动更新类型)

许多程序不能支持符号链接

由于这些原因,Git for Windows默认禁用了对符号链接的支持(但遇到符号链接时Git仍能够读取)。你可以通过core.symlink配置变量来开启对符号链接的支持,例如,当克隆仓库时:

git clone -c core.symlinks=true

创建符号链接

默认情况下,Git Bash中的ln -s命令并非创建符号链接,而是创建复制。

若需要创建符号链接(需保证你的账户有相应的权限),使用mklink.exe,例如:

mklink /d this-link-points-to c:\that-directory

mklink this-link-points-to c:\that-file

允许非管理员用户创建符号链接

Launch gpedit.msc (i.e. the group policy editor) and add the account(s) to Computer configuration\Windows Setting\Security Settings\Local Policies\User Rights Assignment\Create symbolic links.

运行gpedit.msc(组策略编辑器),并增加账号到:计算机配置\Windows设置\安全设置\本地策略\用户策略\用户权限分配\创建符号链接。

附原文:Symbolic Links

555a04d44ee85b7cf458a0bb1110c7c5.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值