![在相对符号链接中添加“./”有什么含义?](https://linux22.com/image/204888/%E5%9C%A8%E7%9B%B8%E5%AF%B9%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E4%B8%AD%E6%B7%BB%E5%8A%A0%E2%80%9C.%2F%E2%80%9D%E6%9C%89%E4%BB%80%E4%B9%88%E5%90%AB%E4%B9%89%EF%BC%9F.png)
我注意到,当我创建相对符号链接时,以 开头的源路径./
保持这种方式,而以字母数字字符开头则保持这种方式,尽管它们的含义相同。在我能想到的每种情况下,这两种类型的行为都是相同的,但是开发人员选择添加这种看似不必要的冗余肯定是有原因的;也许存在一些边缘情况,其中一个人的行为与另一个人不同。
答案1
创建符号链接只将目标存储为字符串,根本不尝试解析该链接。有几个原因;一是可以创建一个符号链接,指向稍后可能存在的文件(因为它将稍后创建,或者因为它将稍后出现,例如通过新安装的文件系统);另一个是符号链接可用于引用根本不是文件的数据(在 Linux 上,查看下面的链接/proc/*/fd
— 您会看到一些指向管道、套接字、已删除文件等)。
符号链接的目标被显式指定为字符串,按原样存储。仅当程序尝试打开符号链接(就像打开文件一样)时,才会解释它。