ln -s 中的目标必须是完整路径吗?

ln -s 中的目标必须是完整路径吗?

我尝试ln在目录中调用~/download如下内容:

ln -s ./abc ~/abc [EDITED]

但它不起作用。
ls -al在家里这样做,但得到的是错误的链接abc

ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)

所以我的问题是:ln需要目标的完整路径吗?我在页面中没有找到任何文档或提示man。如果需要,我可以在哪里获得更多信息。

答案1

这很简单:你创建一个~指向的符号链接./abc 在那个目录中。符号链接的路径名必须在其所在目录的上下文中有效¹。如果您确实想指向您現在目录,必须使用完整路径。


  1. 如果您想使用链接,则链接必须是有效的。它可以指向虚无或不存在的文件。这可能是一件好事,因为该文件可能以前存在,并且随时可能重新出现,然后符号链接将再次指向它。

答案2

ln可以采用绝对路径名或相对路径名;对于符号链接来说,区别很重要,但由于您要求建立硬链接,因此无论哪种方式它都会解析为同一个文件。

检查ls -li输出~/abc——~/download/abc您将看到两个文件的链接数2和 inode 编号相同。

相关内容