符号链接中的环境variables

我们可以在符号链接中使用$ HOME或其他环境variables吗?

我知道使用相对path../../.config但有时是很多../ :)像~/.config东西会更舒适,或使用$ HOME。

编辑:

habbie回答psmears的评论是答案,对不起,我的问题是不完整的。

虽然(如其他答案所示),当创build符号链接时(与任何shell命令一样),您可以使用环境variables,但在符号链接本身中实际上不能包含环境variables(或“〜”)引用

Solutions Collecting From Web of "符号链接中的环境variables"

符号链接由内核处理,内核不关心环境变量。 所以不行。

是。 没问题。 实际上你实际上不会在你的链接中使用$ HOME变量,所以它不适用于用户组的智能解决方案。 当执行该命令时,该变量由shell转换,变量的内容在链接中使用。

 ln -s ~/test /tmp/test 

被扩展到

 /<path>/<to>/home/test -> /tmp/test 

啊。 只有调用ln的人的环境变量才能工作。 您不能在链接中存储其他人的环境变量。 在调用命令之前,变量被展开。

如果你不想在链接中扩展变量,你可以把单引号放在它的周围,

 ln -s '$HOME/file/or/folder' newname 

这会给,

 newname -> $HOME/file/or/folder 

而不是让它扩展到你本地设置的$ HOME。

[注意这是依赖于系统的 – 不是所有的系统都支持变体符号链接]

最近我已经能够使用FUSE文件系统。 使用fusepy编写自定义的passthrough文件系统非常简单,它可以在确定要提供的实际文件时读取环境变量。 当然,它只能获得挂载直通系统的进程的环境变量,所以它不是那么有用。

是的你可以。

 ln -s $HOME/file/or/folder newname 

你也可以设置自己的变量并使用它们。 加入你的.bashrc(或.bash_profile):

 export $MYPATH=/your/path