我想使用“which”命令来查看实际调用的是哪个可执行文件,但是防御性的“noglob”别名一直在妨碍。是否有快捷方式可用于查找命令别名时调用的可执行文件?
我认为这应该与 shell 无关,但如果重要的话,我正在使用 zsh。
您可以使用which -a COMMAND(orwhere 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
Run Code Online (Sandbox Code Playgroud)
由于在执行任何操作之前在命令行中替换了别名,因此列表中的第二个命令是您要查找的命令(当然,假设第一行以某种方式别名为同名)