问题:符号链接没有扩展$HOME或“~”?

基本思想是我想链接到相对于 $HOME 的路径,而不是显式扩展 $HOME 变量,因为我想确保链接在多台机器上工作,例如,

当我做

ln -s ~/data datalnk

我希望将它定向到具有/home/user的用户$HOME的一台机器上的目录/home/user/data,并在另一台具有/home/machine/user/data的用户$HOME的机器上定向到/home/machine/user/data

我无法使用在第二台机器上创建符号链接

ln -s /home/machine/user /home/user

因为我没有这样做的权限,并且我不能link相对路径,因为两台机器具有不同的目录层次结构。

有关解决或规避此问题的可能方法的任何想法?

编辑:

我真正想做的是让相同的链接在两个机器上工作,其中目标具有相同的目录,仅就其到 $/HOME 的相对路径而言,而不是它们的绝对路径,而不是它们到链接的相对路径任何一个。

解答

以这种方式使符号链接动态化的唯一方法是使用相对路径而不是绝对路径。换句话说,不要以/开始你的路径。

例如:

cd
ln -s data datalnk

在运行时,您的应用程序或脚本需要引用~/datalnk$HOME/datalnk

您还没有真正说出您要完成的工作,因此我无法确定我是在解决您的问题还是建议您需要以不同的方式解决问题。

Logo

更多推荐