该命令通常可以很好地工作,但是这个命令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)