Environment-Variables

在符號連結目標中使用 ~ 或使用變數創建符號連結

  • January 9, 2022

我想創建一個符號連結,~/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 [...]

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