符号链接 Cygwin vs. Msys2 vs. Win 10 (mklink)

问题描述 投票:0回答:1

我的意思是在 Win 10 下从 PortableApps 在 Msys2 中创建符号链接 (我需要便携式应用程序能够跨系统携带应用程序目录),就像我在 Linux 中所做的那样。

为了比较,我将引用我所看到的:1)Msys2;还有其他两个选项:2)便携式 MobaXTerm(基于 Cygwin),3)(DOS)命令提示符。

  1. Msys2: 我收到错误消息

    ln: failed to create symbolic link 'myfile': Operation not permitted

    编辑(我不确定中间是否有任何更新):现在在Msys2中
    ln -s myfile
    不报告错误,但它复制目标而不是创建符号链接。我不知道为什么行为会改变,但这对我来说也没什么用。

  2. MobaXTerm: 我可以毫无问题地做到

    ln -s myfile
    。 但这不是一个合适的解决方法。

  3. 命令提示符

    mklink
    创建符号链接。 如果我可以从 msys2 启动它,这可能是一个解决方法。 但它需要管理员权限,或者至少是开发者模式,我需要一些没有此要求的东西。 (我想知道 MobaXTerm 正在做什么来克服这个要求)。 参见这个

  4. (待定: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

https://www.joshkel.com/2018/01/18/symlinks-in-windows/

cygwin symlink msys2 mklink mobaxterm
1个回答
0
投票

默认情况下Windows不允许用户创建符号链接。可以启用此功能,但有各种支持和反对打开此功能的争论,我不会在这里讨论。

据我目前的理解,使用 Cygwin 创建符号链接不会对您有帮助,因为 Cygwin 使用自己的特殊格式来处理标准 Windows 和 MSYS 程序无法理解的符号链接。

就文件而言,您会被卡住,但是现代版本的 MSYS 确实将 目录连接 视为符号链接,因此您可以运行

cmd //c mklink //j LINK_NAME TARGET

创建有效的符号链接。请注意双斜杠,以防止 MSYS 将选项解析为路径,并且 link_nametarget 参数与

ln
相反。

© www.soinside.com 2019 - 2024. All rights reserved.