2009-04-15 233 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編譯器工具的多個版本和目標版本之類的東西。在後一種情況下,可能需要與特定工具版本的絕對鏈接。

這一切都回到了你真正想要做的每一種情況。一般的答案是沒有普遍的答案。