Windows 能识别 Linux 的符号链接吗?

Windows 能识别 Linux 的符号链接吗?

我只是想知道 Windows 系统如何处理符号链接(当通过 Linuxln -s在 Windows 本身支持的文件系统上创建时)支持符号链接,例如 NTFS)。我最好的猜测是它不会识别它们,但我不完全确定。

另外,Mac 遇到 Mac 时会怎么做?

答案1

当我们谈论非本地磁盘时,取决于Windows版本和服务器端的配置。

从 Windows Vista 开始,Windows 确实有符号链接的概念,但语义不同。但这里更重要的问题应该是路径名,它遵循不同的语法。对于初学者:unixoid 端的单根目录树和 Windows 端的多个驱动器号作为根。

在 unixoid 端,符号链接只是带有特殊标志的文本文件。在 Windows 端,底层机制称为重分析点。这告诉对象管理器将其传递给特定的注册过滤器(元数据存储在重分析点)。 Windows 2000 已经引入了一种称为连接点(大致但不完全是目录符号链接)的重分析点。在 Vista 中,他们引入了文件和目录的符号链接,也在远程驱动器上。和符号链接在一定程度上也支持远程驱动器。

要点是文件系统驱动程序(在本地运行时)是否会对 Windows 看到的路径进行任何调整。在这种情况下,它适用于某些本地/相对符号链接。对于作为目标的绝对路径,事情将变得困难且不可能推断出其含义。远程符号链接(到“网络共享”)也是如此。

至于 Mac 方面,我不知道,作为一个单独的问题可能有意义。但只要服务器端传达这是符号链接的信息,我就看不出有什么问题,因为它们都遵循 SUS 语义(与 Windows 不同)。


考虑 Linux 端挂载点:

/dev/sda1 /
/dev/sda2 /home
/dev/sda3 /var

现在考虑一个/home/paul/fstab指向 的符号链接/etc/fstab。它们位于两个不同的卷上,Windows - 如果能够通过文件系统驱动程序看到它们(这确实有效!) - 无法按照/etc/fstab描述的方式区分它们。因此,Windows 在文件夹下看到的链接\paul\fstab(即使已翻译)也将指向\etc\fstab,而该链接在 上不存在/dev/sda2。如果该符号链接指向相对路径,那么../../etc/fstab事情就根本不会改变。


要旨:因此,虽然可以想象您可以使其适用于某些极端情况,但事实上,语义和语法在栅栏两侧都不同,因此您不太可能找到可行的实用且通用的方法。

答案2

0xC0000022L 的答案对于 Windows 方面来说是彻底的。 Mac 可以识别 Linux 的符号链接;但是Linux无法识别别名在 Mac 的 Finder 中制作(使用 ln -s 创建的符号链接工作正常)。

相关内容