![linux:挂载后使链接工作](https://linux22.com/image/519765/linux%EF%BC%9A%E6%8C%82%E8%BD%BD%E5%90%8E%E4%BD%BF%E9%93%BE%E6%8E%A5%E5%B7%A5%E4%BD%9C.png)
这不是经典的编程问题,而且由于我对这个(真的很酷!)网站还很陌生,我不确定这里是否是合适的地方,所以无论如何我都会尝试一下。
当实验室里所有人都使用 Windows 电脑并通过 ssh 访问实验室 Linux 服务器时,我就在实验室工作。
我更喜欢 Linux,所以我在 PC 上本地安装了 ubuntu 10.4。我使用 mount server:/home /mnt/home/ 安装我们实验室服务器的主目录。然后我可以访问服务器上的文件(我必须更改我的本地 UID 以匹配我们服务器上分配给我的 UID,以便能够写入我的主目录)。
问题是,当我通过挂载位置访问服务器上的所有(符号)链接时,它们都不起作用。我猜系统只是尝试跟踪我本地 /home 中的链接,而不是 server:/home 上的链接。
有没有什么办法可以让链接起作用?
谢谢,戴夫
答案1
您的符号链接绝对指向/home/dave/...在服务器端,您有目录结构。在客户端,符号链接指向完全相同的路径。
因此有 3 种可能的方法:
最好的解决方案是尽可能始终使用相对符号链接。例如,如果符号链接所在的目录包含,/home/dave
则符号链接目标路径应为workspace/proj1/code
。如果位于,则/home/dave/my_current_project
可能是../workspace/proj1/code
。但有时这是不可能的,或者根本不想要。
/home
第二种解决方案是从服务器挂载到/home
客户端。同样,这有时也是不必要的。
/var/local
第三个解决方案是,在两端创建一个符号链接,并使所有链接都与它相关。通过在例如名为 的中创建符号链接来实现此目的,home
该链接在服务器端链接到/home
,在客户端链接到/mnt/home
。现在将服务器上的所有符号链接从 更改/home/dave/...
为/var/local/home/dave/...
。
我认为最好的解决方案是第一个,其次是第二个,最后一个是后备方案,这增加了用户的工作复杂性,并可能导致将来出现错误链接