建立不在工作目錄中的符號鏈接

建立不在工作目錄中的符號鏈接

這個命令通常像一個超級按鈕一樣工作,但這個命令ln -si GIT/Settings/session ./.mozilla/firefox/foo.default/只是創建某種顯示為檔案的損壞連結。

這是為什麼?

甚至sudo ln -fs不起作用。

有什麼建議如何做到這一點嗎?

提前致謝。

答案1

雖然聽起來很奇怪,

ln -si ../../../GIT/Settings/session ./.mozilla/firefox/foo.default/

會做你想做的事。這裡的經驗法則是,您應該指定相對於放置連結的位置的連結目標。

在 Unix 和類別 Unix 檔案系統上,符號連結實際上是一個特殊文件,其內容是路徑。鍵入創建一個符號鏈接ln path filename檔案名稱其內容是小路。例如,如果您輸入

ln foo bar/baz

那麼你的系統將創建一個名為 bar/baz 的鏈接,其中包含路徑“foo”。然而,該連結將會被破壞——當您嘗試取消引用該連結時,您的核心將取消它相對於連結目錄– 在這種情況下,酒吧。您的核心將尋找不存在的 bar/foo。

另一方面,如果您輸入

ln ../foo bar/baz

那麼你的系統將創建一個名為 bar/baz 的鏈接,其中包含路徑“../foo”。取消引用此鏈接,您的內核將查找 bar/../foo,它確實存在(並且實際上是您想要的)。

答案2

您可以使用來源檔案和目標檔案的完整路徑

ln -s (full path to /foo) (full path to bar/baz)

相關內容