我注意到,当我创建相对符号链接时,以 开头的源路径./
保持这种方式,而以字母数字字符开头则保持这种方式,尽管它们的含义相同。在我能想到的每种情况下,这两种类型的行为都是相同的,但是开发人员选择添加这种看似不必要的冗余肯定是有原因的;也许存在一些边缘情况,其中一个人的行为与另一个人不同。
答案1
创建符号链接只将目标存储为字符串,根本不尝试解析该链接。有几个原因;一是可以创建一个符号链接,指向稍后可能存在的文件(因为它将稍后创建,或者因为它将稍后出现,例如通过新安装的文件系统);另一个是符号链接可用于引用根本不是文件的数据(在 Linux 上,查看下面的链接/proc/*/fd
— 您会看到一些指向管道、套接字、已删除文件等)。
符号链接的目标被显式指定为字符串,按原样存储。仅当程序尝试打开符号链接(就像打开文件一样)时,才会解释它。