where - コマンドの全フルパス名の表示

Top > UNIX > コマンド > 検索 > where

どこ (where) にコマンドがあるのかを、エイリアス、ビルトイン、パスを元に調べて表示します。

wherecsh, tcsh の組み込みコマンドなので、sh, bash 系では使用できません。

例えば

% where tar
/usr/bin/tar
/usr/sbin/tar
/bin/tar
/usr/local/bin/tar
/usr/local/mh/tar
/usr/local/gnu/bin/tar
/usr/sbin/tar

と表示されたならばそれだけ tar があるということです。実際 tar コマンドとして使っているのは /usr/bin/tar ということになります。 別の tar を使用したい場合は環境変数 PATH でそのパスを前にもってきます。 .cshrc で設定してしまいましょう。 また、

% where cd
cd is a shell built-in
/usr/bin/cd
/bin/cd

と表示されたならば、シェル組み込みコマンドcd 以外にも存在しますが、 実際 cd コマンドとして使用しているのは組み込みコマンドということになります。 組み込みコマンドは必ず優先されます。

% where ls
ls is aliased to ls -F
/usr/ucb/ls
/usr/bin/ls
/bin/ls
/usr/local/bin/ls
/usr/local/mh/ls
/usr/local/gnu/bin/ls

と表示されたならば、実際 ls コマンドとして使用しているのは ls -F に alias されたコマンドということになります。 エイリアスも必ず優先されます。 また、この場合は ls -F の ls は /usr/ucb/ls だということもわかります。 この際、

% where \ls

エイリアスアウト して指定すれば alias 抜きで 表示することもできます。ただしこれができるのは tcsh だけです。 which では使用する意義がありましたが、where ではすべて表示されるので使うことはないでしょう。


xrea