在 Centos 6.5 中找不到 /usr/bin/realpath

在 Centos 6.5 中找不到 /usr/bin/realpath

我尝试在 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是一个非常有用的工具,但它的大多数功能在 中已经存在readlinkrealpath 手册页状态:

请注意,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

相关内容