链接应始终指向绝对路径而不是指向当前目录,这是一个好习惯吗?
我说的是参考 - 我需要维护软件,所有以前的版本都应该始终指向最新版本。
答案 0 :(得分:2)
定义“良好实践”。链接是否指向绝对路径取决于文件之间的关系。
如果文件始终位于相同的相对位置,但可以移动(例如bin/
中的别名),则它们应该是相对的。如果实际文件位于已知位置(例如,您要将默认配置文件链接到~/.config
),则使用绝对路径。
答案 1 :(得分:0)
取决于你想做什么。我的Linux系统有两种符号链接。
find /usr /bin /lib -type l -print0 | xargs -0 ls -ld | less
答案 2 :(得分:0)
我认为没有“好的做法”。有不同的用例。
例如,如果我在/home/.../application中存储一个本地安装了程序的树,我可能想要将“default config”符号链接到某个特定的配置而没有绝对路径。这样,当我将整个树移动到/home/.../application-other-instance时,配置文件的链接保持正确。
另一方面,如果我想在本地目录中的/ etc / ...中引用一些全局文件,我将使用绝对路径符号链接。这保证了我在移动的任何地方都指向同一个文件。
想想你想要达到的目标,相对/绝对路径决策要么显而易见,要么无关紧要。只有“永远不会那样”的规则可能是:永远不要链接到root dir / xxx中的任何内容,通过../../../../../../../ xxx
答案 3 :(得分:0)
我认为我不同意这是一种概括。
绝对存在相对链接更有意义的情况。例如,使用项目的目录树。如果项目备份或移动(甚至重复)到另一个地方,绝对链接可能会令人困惑和/或灾难性。
即使您在谈论系统范围的工具,也会出现相对链接有意义的情况,有时则不然。比较一个非常通用的工具(如grep)与多个版本的链接,以及生活在同一主机上的gnu编译器工具的目标风格。在后一种情况下,可能需要与特定工具版本的绝对链接。
这一切都回到了你真正想要做的事情。一般的答案是没有一般性的答案。