msys2 中的符号链接:复制还是硬链接?

Cyk*_*ker 3 symlink msys2

我知道ln -s在 msys2 中不能按预期工作。但有些人报告结果是副本,而另一些人则说这是硬链接:

我想知道ln -s不同版本的 msys2 的行为是否有所不同。是否有文档说ln -s在未来的 msys2 版本中将始终创建副本或硬链接?

Dav*_*son 9

我找不到官方文档,但我只是做了一些测试。如果您有一个名为 的文件target并运行ln -s target link,则该文件的类型link取决于MSYS环境变量。

  • 如果MSYS未设置,则link只是 的副本stuff
  • 如果MSYSwinsymlinks,它会创建一个 Windows 快捷方式。
  • 如果MSYSwinsymlinks:nativestrict,它会创建一个更真实类型的符号链接,但如果您没有以管理员身份运行 MSYS2 shell,这似乎会失败并出现“不允许操作”错误。

在此输入图像描述

MSYS2 Posix 仿真来自 Cygwin,因此 Cygwin 的文档可能有点用:

https://cygwin.com/cygwin-ug-net/using.html#pathnames-symlinks

  • MSYS2 的一个很好的来源:https://www.msys2.org/wiki/How-does-MSYS2-differ-from-Cygwin/ """用复制替换符号链接,这样 Windows 程序就不会在这些上出错文件。MSYS2 还支持创建本机 NTFS 符号链接,但这些在其他方面受到限制。""" (5认同)