2009-04-15 234 views
2

链接应始终指向绝对路径而不是从当前目录指向它是一种好的做法吗?指向绝对路径的链接

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

回答

2

定义“良好做法”。链接是否指向绝对路径取决于文件之间的关系。

如果文件总是处于相同的相对位置,但可以移动(例如bin/中的别名),它们应该是相对的。如果实际文件位于已知位置(例如,要将默认配置文件链接到~/.config),则使用绝对路径。

0

取决于你想要做什么。我的Linux系统有两种符号链接。

find /usr /bin /lib -type l -print0 | xargs -0 ls -ld | less 
0

我不认为这是一个“良好的做法”。有不同的用例。

例如,如果我在/home/.../application中本地安装了一个程序,我可能希望将“default config”符号链接到某个没有绝对路径的特定配置。这样,当我将整个树移动到/home/.../application-other-instance时,到配置文件的链接保持正确。另一方面,如果我想在本地目录中引用/ etc/...中的某个全局文件,我将使用绝对路径符号链接来执行此操作。这保证我在移动的任何地方都指向同一个文件。

只要想想你想达到什么目的,相对/绝对路径决策将是显而易见的,或无关紧要的。只有“永远不要这样做”的规则可能是:永远不要链接到root dir/xxx中的任何东西,通过../../../../../../../xxx

0

我不'我认为我可以同意这个概括。

肯定有相关链接更有意义的情况。例如,使用项目的目录树。如果项目是备份的,或移动(甚至复制)到另一个地方,绝对链接可能会造成混淆和/或灾难。

即使您在讨论系统范围的工具,也会出现相关链接有意义的情况,而其他时间则不行。比较有一个非常通用的工具(如grep)的链接,以及像生活在同一主机上的gnu编译器工具的多个版本和目标版本之类的东西。在后一种情况下,可能需要与特定工具版本的绝对链接。

这一切都回到了你真正想要做的每一种情况。一般的答案是没有普遍的答案。