CentOS6.5で「realpath」と入力しようとしています。しかし、インストールされていないようです。 coreutils(archlinux)に含まれていることを確認しました。 CentOSが提供するcoreutilsパッケージを再確認します。/usr/bin/realpathがありません。 ' http://pkgs.org/centos-6/repoforge-x86_64/realpath-1.17-1.el6.rf.x86_64.rpm.html のようなサードパーティのrpmをインストールしたくない'。
私はyumを検索しましたrealpath、それを見つけることができません。ユーティリティは他のパッケージに含まれていますか?または、セキュリティ上の理由で削除されますか?
realpath
は非常に便利なツールですが、その機能のほとんどはすでにreadlink
に含まれていました。 realpath
man page は次のように述べています:
Readlink(1)コマンドの「-e」オプションによってほぼ同じ機能が提供されることに注意してください。
そして、readlink
manページ は次のように述べています。
-e、-canonicalize-existing:指定された名前のすべてのコンポーネントのすべてのシンボリックリンクを再帰的にたどることによってcanonicalizeします。すべてのコンポーネントが存在する必要があります。
readlink
コマンドは2008年にcoreutils、AFAIKに追加されました:それは buntu Hardy 8.04で確実に利用可能 です。したがって、リアルパスがない場合、readlink
をすぐに使用できる可能性があります。
realpath
ツールは、2012年にリリースされたGNU coreutils in version 8.15(commit 77ea441f79aa ))に追加されました。CentOSリリースにはcoreutils v8.4が含まれている可能性があります。ツールは削除されませんでした;それはまだ追加されていませんそもそも。
通常、realpath
はcoreutils
パッケージによって提供されるため、次の方法でインストールする必要があります。
yum install coreutils
または、readlink
を試すか、次のような独自の関数を定義します。
realpath () { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" }
またはいくつかを参照してください ここに他の例 。
CentOS 7でコマンドをテストしましたVM via Vagrant :
vagrant init bento/centos-7.1 && vagrant up --provider virtualbox && vagrant ssh
realpath
がデフォルトでインストールされているようです。