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

Jam*_*ude 17 windows symlink macos

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

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

0xC*_*22L 13

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

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

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

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

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


考虑 Linux 侧挂载点:

/dev/sda1 /
/dev/sda2 /home
/dev/sda3 /var
Run Code Online (Sandbox Code Playgroud)

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


要点:因此,虽然可以想象您可以在某些极端情况下使用它,但围栏两侧的语义和语法不同的事实使得您不太可能找到一种实用且通用的方法。

  • 哇,这是一个非常详细,彻底的答案!感谢您提供所有这些信息!我实际上不知道 Linux 的符号链接是基于文本的。再次感谢您提供的所有有用信息。 (2认同)