指向绝对路径的链接

时间:2009-04-15 19:52:54

标签: unix path symlink

链接应始终指向绝对路径而不是指向当前目录,这是一个好习惯吗?

我说的是参考 - 我需要维护软件,所有以前的版本都应该始终指向最新版本。

4 个答案:

答案 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编译器工具的目标风格。在后一种情况下,可能需要与特定工具版本的绝对链接。

这一切都回到了你真正想要做的事情。一般的答案是没有一般性的答案。