何が起こっているのか?通常のコマンドfind
とlocate
コマンドでは、にある検証プログラムが見つかりません/bin/verify
。実際、にあるものは何も見つからないようです。/bin
[jake@jace]/bin% "find" /bin/ -iname "verify" 2>/dev/null
/bin/verify
[jake@jace]/bin% "find" /bin -iname "verify" 2>/dev/null
[jake@jace]/bin% "find" / -iname "verify" 2>/dev/null
/home/jake/android/cts/tools/vm-tests-tf/src/dot/junit/verify
/usr/share/cmake/Modules/FortranCInterface/Verify
/usr/bin/verify
。
[jake@jace]/bin% locate "verify" | grep "bin"
/usr/bin/db_log_verify
/usr/bin/db_verify
/usr/bin/fprintd-verify
/usr/bin/json_verify
/usr/bin/ldns-verify-zone
/usr/bin/rpmverify
/usr/bin/verify
/usr/bin/verifytree
。
[jake@jace]/bin% "ls" -lh /bin/verify
-rwxr-xr-x. 1 root root 32K May 22 2012 /bin/verify
答え1
ああ。
[jake@jace]/bin% ls -lhd /bin
lrwxrwxrwx. 1 root root 7 May 22 2012 /bin -> usr/bin/
私は Fedora 17 を実行しています。どうやら は に/bin
シンボリックリンクされているようです/usr/bin
。そしてもちろん (そして当然ですが)結果の汚染を避けるために、find
と はlocate
シンボリックリンクされたディレクトリを無視します。
答え2
これはenv [コマンド]のよい使い方です
env verify
コマンドがどこにあるかわからない場合にコマンドを呼び出す 1 つの方法です。
ところで、/bin は多くのシステム (Solaris など) 上のシンボリックリンクです。