Environment-Variables
在符號連結目標中使用 ~ 或使用變數創建符號連結
我想創建一個符號連結,
~/foo/
但是當我寫它時,~
總是解析為絕對主路徑。我過去使用過../
s 並且它們工作正常,是~
不允許的嗎?我想這樣做的原因是因為
~
根據機器和 Linux/OSX 有不同的絕對路徑,但總是指向我的主目錄。我想在跨多台機器同步的 git repo 中包含這樣的連結。
在執行命令之前,波浪號字元由 shell 擴展。它將被 的值替換
$HOME
。因此ln
,創建符號連結的實用程序將永遠不會看到波浪號,只會看到完整路徑。此路徑將儲存在符號連結中。在Linux中,沒有創建符號連結變數的選項。它們由核心處理。核心不支持環境變數。
BSD允許這樣的連結。它們被稱為變體符號連結。你可以這樣做:
$ ln -s ’${variable}’ linkname $ ls -l linkname lrwxrwxrwx 1 root root 6 Sep 29 12:33 linkname -> ’${variable}’
然後
varsym
可以設置這些變數:varsym variable=value cat linkname [...] contents of file with name value [...]