這個命令通常像一個超級按鈕一樣工作,但這個命令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)