加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash:如何获得符号链接的真实路径?

发布时间:2020-12-15 22:51:08 所属栏目:安全 来源:网络整理
导读:是否有可能在/usr/local/bin文件夹中执行符号链接的文件,以获取原始脚本的绝对路径?好吧,..我知道原始文件在哪里,我知道它因为我正在链接它.但是,即使我移动原始源代码(和符号链接),我希望这个脚本正常工作. #!/bin/bashecho "my path is ..." 解决方法 rea
是否有可能在/usr/local/bin文件夹中执行符号链接的文件,以获取原始脚本的绝对路径?好吧,..我知道原始文件在哪里,我知道它因为我正在链接它.但是,即使我移动原始源代码(和符号链接),我希望这个脚本正常工作.

#!/bin/bash
echo "my path is ..."

解决方法

readlink不是标准命令,但它在Linux和BSD上很常见,包括OS X,它是你问题最直接的答案. BSD和GNU readlink实现是不同的,所以请阅读您所拥有的文档.

如果readlink不可用,或者您需要编写未绑定到特定实现的跨平台脚??本:

如果符号链接也是一个目录,那么

cd -P "$symlinkdir"

会让你进入dereferenced目录,所以

echo "I am in $(cd -P "$symlinkdir" && pwd)"

将回显完全取消引用的目录.也就是说,cd -P取消引用整个路径,因此如果在同一路径中有多个符号链接,则可能会产生意外结果.

如果符号链接是文件而不是目录,则可能不需要取消引用该链接.大多数命令都无害地遵循符号链接.如果您只想检查文件是否为链接,请使用test -L.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读