zsh 内置的 "where" 的目的是什么?

What is the purpose of the "where" builtin in zsh?

我发现 google 不可能做到这一点,并且在手册页中找不到信息。

根据记录的保留字列表,where 不是 bash 中的关键字。

https://www.gnu.org/software/bash/manual/html_node/Reserved-Word-Index.html

zsh builtins manual描述:

where [ -wpms ] name ... Equivalent to whence -ca.

--

whence [ -vcwfpams ] name ... For each name, indicate how it would be interpreted if used as a command name.

-c Print the results in a csh-like format. This takes precedence over

-a Do a search for all occurrences of name throughout the command path. Normally only the first occurrence is printed. -v.

来自http://zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html

where [ -wpms ] name ... Equivalent to whence -ca.

和:

whence [ -vcwfpams ] name ... For each name, indicate how it would be interpreted if used as a command name.

-v Produce a more verbose report.

-c Print the results in a csh-like format. This takes precedence over -v.

-w For each name, print ‘name: word’ where word is one of alias, builtin, command, function, hashed, reserved or none, according as name corresponds to an alias, a built-in command, an external command, a shell function, a command defined with the hash builtin, a reserved word, or is not recognised. This takes precedence over -v and -c.

-f Causes the contents of a shell function to be displayed, which would otherwise not happen unless the -c flag were used.

-p Do a path search for name even if it is an alias, reserved word, shell function or builtin.

-a Do a search for all occurrences of name throughout the command path. Normally only the first occurrence is printed.

-m The arguments are taken as patterns (should be quoted), and the information is displayed for each command matching one of these patterns.

-s If a pathname contains symlinks, print the symlink-free pathname as well.