首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >符号链接中的环境变量

符号链接中的环境变量
EN

Stack Overflow用户
提问于 2010-10-08 16:20:10
回答 6查看 19.7K关注 0票数 21

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

我知道使用相对路径../../.config,但有时对于许多../ :)像~/.config这样的东西会更舒服,或者使用$HOME。

编辑:

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

虽然(正如其他答案所示),您可以在创建符号链接时使用环境变量(与任何shell命令一样!),但实际上不能在符号链接本身中引用环境变量(或'~')

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-10-08 16:25:42

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

票数 45
EN

Stack Overflow用户

发布于 2020-01-07 20:30:49

即使符号链接是由内核解析的,您仍然可以使用LD_PRELOAD技巧,包装所有采用路径名的libc函数,并在'readlink‘返回的字符串中展开任何$XYZ组件(参数扩展)。然后将展开的路径提供给被包装的函数。正如jaztik所建议的,在创建链接时,您必须避开shell扩展中的目标路径。

由于注入的库具有对用户环境的完全访问权限,因此这将满足操作的所有期望。

票数 3
EN

Stack Overflow用户

发布于 2010-10-08 16:26:20

是。没问题。实际上,您不会在链接中实际使用$HOME变量,因此它不能用于智能解决方案,例如用户组。执行命令时,shell会转换变量,并在链接中使用变量的内容。

代码语言:javascript
运行
复制
ln -s ~/test /tmp/test 

被扩展为

代码语言:javascript
运行
复制
/<path>/<to>/home/test -> /tmp/test

阿。并且只有调用ln的人的环境变量才会起作用。您不能在链接中存储其他人的环境变量。在调用该命令之前,将展开变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3888809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档