Linux

~/SomeDir 相對於使用者首頁的符號連結

  • March 16, 2017

我有一些項目,我與其他人分享。它在 git 中儲存和分發。

它應該包含指向 git 存檔之外的目錄的連結,但在使用者主目錄中,其中一些常用庫,如下所示:

Arduino -> /home/gilhad/GitHub/arduino-1.8.1
Arduino-Makefile -> /home/gilhad/GitHub/Arduino-Makefile
Bare-Arduino-Project -> /home/gilhad/GitHub/Bare-Arduino-Project

它適用於我(gilhad),但不適用於我的朋友。我想做這樣的連結:

Arduino -> ~/GitHub/arduino-1.8.1
Arduino-Makefile -> ~/GitHub/Arduino-Makefile
Bare-Arduino-Project -> ~/GitHub/Bare-Arduino-Project

這將有效地解決我帳戶上的前一個問題和朋友帳戶上的後續問題

Arduino -> /home/friend/GitHub/arduino-1.8.1
Arduino-Makefile -> /home/friend/GitHub/Arduino-Makefile
Bare-Arduino-Project -> /home/friend/GitHub/Bare-Arduino-Project

(不管這個 git/actual 目錄實際放置在哪裡,因此../../../GitHub/....目標不起作用,因為項目可以放置在~/tmp 以及 in 中~/my/special/folder/for/projects,而GitHub始終放置在使用者主目錄中(/home/gilhad或指向/home/friend什麼)~

你不能用符號連結真正做到這一點。除了使用波浪號來引用主目錄是一個 shell 特性並且並非所有程序都支持(儘管很多程序都支持)這一事實之外,“主目錄”的整個概念是一個使用者空間概念,並且不t 存在於核心中。因此,解析符號連結的核心文件系統層並不具備您需要的知識。

在 Linux 上,如果你真的想要的話,你可以使用掛載命名空間和綁定掛載來安裝一些東西。(見這裡這里這裡


無論如何,在 git 儲存庫中創建指向儲存庫本身之外的連結的想法對我來說似乎有點奇怪。只有符合連結設置的系統的人才能使用連結,並且想要/需要不同佈局的單個使用者有點不走運。您可能需要考慮使用環境變數來儲存使用者文件的位置。用$ARDUINO指向/home/foo/GitHub/arduino-1.8.1/home/foo/GitHub/arduino-someotherversion按使用者要求說。

引用自:https://unix.stackexchange.com/questions/351814