我的意思是在 Win 10 下从 PortableApps 在 Msys2 中创建符号链接 (我需要便携式应用程序能够跨系统携带应用程序目录),就像我在 Linux 中所做的那样。
为了比较,我将引用我所看到的:1)Msys2;还有其他两个选项:2)便携式 MobaXTerm(基于 Cygwin),3)(DOS)命令提示符。
Msys2: 我收到错误消息
ln: failed to create symbolic link 'myfile': Operation not permitted
ln -s myfile
不报告错误,但它复制目标而不是创建符号链接。我不知道为什么行为会改变,但这对我来说也没什么用。MobaXTerm: 我可以毫无问题地做到
ln -s myfile
。
但这不是一个合适的解决方法。命令提示符:
mklink
创建符号链接。
如果我可以从 msys2 启动它,这可能是一个解决方法。
但它需要管理员权限,或者至少是开发者模式,我需要一些没有此要求的东西。
(我想知道 MobaXTerm 正在做什么来克服这个要求)。
参见这个(待定:Windows 资源管理器:未测试)。
为什么有区别?
有没有办法在 Msys2 中创建符号链接(无需管理员)? 也许通过从 msys2 启动 Cygwin 进程,这当然需要系统中拥有一些 Cygwin 应用程序(单独的 Cygwin dll 就足够了吗?)
相关:
https://github.com/msys2/MSYS2-packages/issues/249
https://sourceforge.net/p/msys2/tickets/41/
http://mingw.5.n7.nabble.com/symbolic-links-ln-s-command-td7159.html
默认情况下Windows不允许用户创建符号链接。可以启用此功能,但有各种支持和反对打开此功能的争论,我不会在这里讨论。
据我目前的理解,使用 Cygwin 创建符号链接不会对您有帮助,因为 Cygwin 使用自己的特殊格式来处理标准 Windows 和 MSYS 程序无法理解的符号链接。
就文件而言,您会被卡住,但是现代版本的 MSYS 确实将 目录连接 视为符号链接,因此您可以运行
cmd //c mklink //j LINK_NAME TARGET
创建有效的符号链接。请注意双斜杠,以防止 MSYS 将选项解析为路径,并且 link_name 和 target 参数与
ln
相反。