我们可以在符号链接中使用$ HOME或其他环境变量吗?符号链接中的环境变量
我知道关于使用相对路径../../.config
但有时是很多../
:)类似~/.config
会更舒适,或使用$ HOME。
编辑:
habbie的回答与psmears'的评论是答案,对不起我的问题是不完整的。
虽然(如其他答案显示),您可以创建符号链接时,使用环境变量(如与任何shell命令!),你不能真正拥有环境变量(或“〜”)的符号链接本身
引用我们可以在符号链接中使用$ HOME或其他环境变量吗?符号链接中的环境变量
我知道关于使用相对路径../../.config
但有时是很多../
:)类似~/.config
会更舒适,或使用$ HOME。
编辑:
habbie的回答与psmears'的评论是答案,对不起我的问题是不完整的。
虽然(如其他答案显示),您可以创建符号链接时,使用环境变量(如与任何shell命令!),你不能真正拥有环境变量(或“〜”)的符号链接本身
引用是的。没问题。实际上,您实际上不会在链接中使用$ HOME变量,因此它不适用于用户组的智能解决方案。执行该命令时,该变量由shell转换,变量的内容用于链接。
ln -s ~/test /tmp/test
是用不了两年时间,以
/<path>/<to>/home/test -> /tmp/test
啊。只有调用ln的人的环境变量才能工作。您不能在链接中存储其他人的环境变量。调用该命令之前,变量被展开。
我刚在Centos盒子上试过,thomasmalt写的是正确的。该变量将在创建符号链接的位置进行翻译,并且如果更改环境变量将不会动态更新。 – kskjon 2010-10-08 08:33:14
是的,你可以。
ln -s $HOME/file/or/folder newname
您也可以设置自己的变量并使用它们。添加在你的.bashrc(或者.bash_profile中):
export $MYPATH=/your/path
检查thomasmalt的答案。你所说的本身是正确的,但问题是如何让环境变量存储在链接中,以便每次链接被执行时都会查阅环境(这是不可能的)。 – 2010-10-08 10:10:56
我不认为这个回答真正理解了问题的背景。 – 2014-09-12 22:26:06
如果你不想扩大在链接的变量,你可以把它周围的单引号,
ln -s '$HOME/file/or/folder' newname
这会给,
newname -> $HOME/file/or/folder
,而不是把它扩大到你的本地设置$ HOME。
[注取决于系统 - 不是所有的系统都支持变型符号链接]
我很好奇,如果你可以命名一个系统* * *? :) – conny 2011-09-25 15:37:56
我似乎可以在OS X 10.9上做到这一点。 – JacobEvelyn 2014-06-11 20:31:10
@JacobEvelyn刚刚在OS X 10.9上试过。它正确地将环境变量名称存储在链接中('/ tmp/currenthome - > $ HOME') - 但链接目标无法成功解析。 ('-bash:cd:/ tmp/currenthome:没有这样的文件或目录) – 2014-06-24 12:58:31
最近我已经能够使用FUSE
文件系统来。使用fusepy
来编写自定义直通文件系统非常简单,它可以在确定要提供的实际文件时读取环境变量。当然,它只能获得安装直通系统的进程的环境变量,所以它不如它有用。
我希望这是可能的。一个用例:在〜/ bin目录中有一堆符号链接,指向克隆到'$ HOME/my_github_scripts'的个人git存储库中的脚本。你想从几个机器上的〜/ bin目录链接到这些脚本,但是你的用户名是不同的。所以你不想硬编码用户名(可能是我的家用计算机上的'/ home/joebloggs',但工作时是'/ home/jbloggs',甚至Mac上的'/ Users/joebloggs')。 – 2014-09-12 22:31:12
如果想尝试异国情调,可以查看ROFS Filtered。 – 2016-01-17 14:08:08