web-dev-qa-db-ja.com

zshの「which」に対して「noglob」をバイパスしますか?

'which'コマンドを使用して、実際に呼び出されている実行可能ファイルを確認したいのですが、防御的な 'noglob'エイリアスが邪魔になり続けています。コマンドがエイリアスされたときに呼び出される実行可能ファイルを見つけるために使用できるショートカットはありますか?

これはシェルに依存しないはずだと思いますが、重要な場合はzshを使用しています。

4
Ivar

which -a COMMAND(またはwhere COMMANDまたはwhence -ca COMMAND)を使用して、コマンドパス内のCOMMANDのすべての出現箇所を見つけることができます。

例えば:

% alias ls='noglob ls'
% ls () /bin/ls
% which ls
ls: aliased to noglob ls
% which -a ls
ls: aliased to noglob ls
ls () {
        /bin/ls
}
/bin/ls

何かが実行される前にコマンドラインでエイリアスが置き換えられるため、リストの2番目のコマンドが探しているコマンドです(もちろん、最初の行が何らかの形で同じ名前にエイリアスされていると仮定します)

8
Adaephon