/usr/bin/realpath не найден в Centos 6.5
Я пытаюсь набрать 'realpath' в CentOS 6.5. Но, похоже, не установлено. Я проверил это содержится в coreutils (archlinux). Я дважды проверяю пакет coreutils, предоставляемый CentOS, в нем отсутствует /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, не могу его найти. Утилита содержится в другом пакете? Или просто быть удаленным по соображениям безопасности?
4 ответа
realpath
это очень полезный инструмент, однако большинство его функций уже readlink
, realpath
Страница руководства гласит:
Обратите внимание, что в основном та же функциональность обеспечивается опцией '-e' команды readlink(1).
И readlink
Страница руководства гласит:
-e, --canonicalize-существующие: канонизировать, рекурсивно следуя каждой символической ссылке в каждом компоненте данного имени, все компоненты должны существовать.
readlink
команда была добавлена в coreutils, AFAIK, в 2008 году: она, безусловно, доступна в Ubuntu Hardy 8.04. Так что, если у вас нет реального пути, возможно, что у вас есть readlink
Сразу Доступно.
realpath
инструмент был добавлен в GNU coreutils в версии 8.15 (commit 77ea441f79aa), выпущенной в 2012 году. Вероятно, в вашем выпуске CentOS установлен coreutils v8.4. Инструмент не был удален; это еще не было добавлено во-первых.
Обычно realpath
обеспечивается coreutils
пакет, поэтому вы должны установить его через:
yum install coreutils
В качестве альтернативы попробуйте: readlink
или определите свою собственную функцию, такую как:
realpath () { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" }
или посмотрите еще несколько примеров здесь.
Я протестировал команду в CentOS 7 VM через Vagrant:
vagrant init bento/centos-7.1 && vagrant up --provider virtualbox && vagrant ssh
похоже на то realpath
устанавливается по умолчанию.