我尝试在 CentOS 6.5 中输入“realpath”。但似乎没有安装。我检查了它是否包含在 coreutils (archlinux) 中。我仔细检查了 CentOS 提供的 coreutils 包,它缺少 /usr/bin/realpath。我不想安装第三方 rpm,例如“http://pkgs.org/centos-6/repoforge-x86_64/realpath-1.17-1.el6.rf.x86_64.rpm.html“”。
我已经使用 yum search realpath 了,但找不到。该实用程序是否包含在其他包中?还是出于安全原因而被删除?
答案1
realpath
是一个非常有用的工具,但它的大多数功能在 中已经存在readlink
。realpath
手册页状态:
请注意,readlink(1) 命令的 '-e' 选项提供的功能基本相同。
还有readlink
手册页状态:
-e,--canonicalize-existing:通过递归跟踪给定名称的每个组件中的每个符号链接来规范化,所有组件都必须存在。
据我所知,该readlink
命令于 2008 年添加到 coreutils 中:在 Ubuntu Hardy 8.04 中肯定可用。因此,如果您没有 realpath,则有可能您有readlink
立即可用的。
答案2
该realpath
工具已添加到 GNU coreutils 版本 8.15(提交77ea441f79aa),于 2012 年发布。您的 CentOS 版本可能具有 coreutils v8.4。该工具不是已删除; 它是尚未添加首先。
答案3
通常realpath
由包提供coreutils
,因此您应该通过以下方式安装它:
yum install coreutils
或者尝试:readlink
或者定义你自己的函数,例如:
realpath () { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" }
或者看看更多示例请点击此处。
我已经在 CentOS 7 VM 中通过以下方式测试了该命令流浪汉:
vagrant init bento/centos-7.1 && vagrant up --provider virtualbox && vagrant ssh
它似乎realpath
是默认安装的。
答案4
有类似的问题。在 MacOS 上:
brew install coreutils