Linux 如何使符号链接与远程装载一起工作?

Linux 如何使符号链接与远程装载一起工作?,linux,filesystems,symlink,nfs,Linux,Filesystems,Symlink,Nfs,我有两台服务器,A和B A有两个文件系统,/alpha和/beta 我有一个象征性的联系: ln -s /alpha/foo /beta/bar 以便: lrwxrwxrwx 1 root root 70 Dec 22 13:32 /beta/bar -> /alpha/foo 接下来,我通过NFS挂载在B上远程挂载/beta 链接不再工作 有没有办法做到这一点。我希望能够访问服务器B上的A:/alpha/foo,但我希望能够通过/beta/bar符号链接进行

我有两台服务器,A和B

A有两个文件系统,/alpha和/beta

我有一个象征性的联系:

ln -s /alpha/foo /beta/bar
以便:

lrwxrwxrwx 1 root    root           70 Dec 22 13:32 /beta/bar -> /alpha/foo
接下来,我通过NFS挂载在B上远程挂载/beta

链接不再工作

有没有办法做到这一点。我希望能够访问服务器B上的A:/alpha/foo,但我希望能够通过/beta/bar符号链接进行访问

我需要修改我的挂载或链接吗?还是我在试图实现不可能的事情

更新

我应该加上:“不将/alpha装载到服务器B”。
简言之,我希望每当服务器B访问/beta/bar时,都会遵循指向实际文件的符号链接。该链接正确指向
/alpha/foo
,但您的计算机上不存在该链接。如果您挂载
/alpha
,链接将工作。

您需要在机器中挂载
/alpha
,才能使链接工作

软符号链接的内容是一个路径字符串,它不知道如何装载文件系统。在您的情况下,您可以在B上挂载/alpha和/beta,示例路径为A。但强烈建议不要在网络系统之间交叉链接,这很难维护。

软链接仅包含指向本地计算机上另一个文件的路径。您不能引用本地文件系统上无法访问的文件

选项:

  • 不要使用软链接,复制文件
  • 交叉链接(几乎总是一个坏主意)
  • 重新组织/重做任何强加的文件访问要求

    • 听起来你真正想要的是一个硬链接。它是指向文件系统中相同数据的另一个指针,因此要真正删除该文件并释放磁盘空间,必须删除指向该文件的所有硬链接


      一些脚本和工具可能会被它们弄糊涂。

      您可以使用sshfs实用程序来完成您想做的事情。这将允许您在本地计算机上的远程计算机上挂载文件系统。以下是如何做到这一点的参考:

      您的答案与用户关于在多个文件系统之间链接的问题无关。@mattgately:是的。pixel没有很清楚地表达出来,但硬链接是绝对的解决方案。可能不是OP出于任何(有效)原因准备好使用的解决方案,而是直接从/beta访问所需文件而无需挂载/alpha的有效解决方案。我可能会弄错,但我相信问题是关于两个不同文件系统上的文件,因此在这种情况下,硬链接甚至不是一个选项。