Linux
~/SomeDir 相對於使用者首頁的符號連結
我有一些項目,我與其他人分享。它在 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
按使用者要求說。