创建不在工作目录中的符号链接

创建不在工作目录中的符号链接

该命令通常可以很好地工作,但是这个命令ln -si GIT/Settings/session ./.mozilla/firefox/foo.default/只会创建某种显示为文件的断开的链接。

这是为什么?

甚至sudo ln -fs不起作用。

对于如何做到这一点有什么建议吗?

提前致谢。

答案1

听起来可能很奇怪,

ln -si ../../../GIT/Settings/session ./.mozilla/firefox/foo.default/

会按照您的意愿执行。这里的经验法则是,您应该根据放置链接的位置指定链接目标。

在 Unix 和类 Unix 文件系统中,符号链接实际上是一个特殊文件,其内容是路径。输入以下命令在以下位置创建一个符号链接:ln path filename文件名其内容是小路。例如,如果你输入

ln foo bar/baz

然后你的系统会创建一个名为 bar/baz 的链接,其中包含路径“foo”。但是,这个链接会被破坏——当你试图取消引用这个链接时,你的内核会取消引用它相对于链接目录– 在这种情况下,bar。您的内核将查找 bar/foo,但该目录不存在。

另一方面,如果你输入

ln ../foo bar/baz

然后你的系统会创建一个名为 bar/baz 的链接,其中包含路径“../foo”。取消引用此链接后,你的内核会查找 bar/../foo,它确实存在(而且实际上就是你想要的)。

答案2

您可以使用源文件和目标文件的完整路径

ln -s (full path to /foo) (full path to bar/baz)

相关内容