where - コマンドの全フルパス名の表示
どこ (where) にコマンドがあるのかを、エイリアス、ビルトイン、パスを元に調べて表示します。
where は csh, 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 ではすべて表示されるので使うことはないでしょう。