On Thu, Nov 6, 2014 at 1:45 PM, Ray Andrews wrote: > On 11/05/2014 08:43 PM, Bart Schaefer wrote: > >> The pattern accepted by the -m option is not a glob, >> > > That seems very counterintuitive! I'm taking it as a regular glob just > as, I think, > anyone would. > A "regular glob" and a pattern aren't significantly different, but for example you can't use (most) glob qualifiers in a pattern, and the meaning of "/" is very different. Note that "whence" is not a file search tool; scanning a hash table of alias names with a glob comparing file type or modification time would make no sense. Having just written that, it occurs to me that perhaps the "right way" >> is the equivalent of this? -- >> >> whence -a ${(k)commands[(I)pattern]} >> > I couldn't get any love from that. Interesting, it worked very nicely for me even as far back as zsh-4.2.6 on an ancient virtual machine: % whence -vsa ${(k)commands[(I)zsh*]} zshenv not found zsh is an alias for zsh-4.2.6 zsh is /usr/local/bin/zsh -> /bin/zsh zsh is /bin/zsh zsh.old is /bin/zsh.old zshrc not found zsh-4.2.0 is /bin/zsh-4.2.0 zsh-4.2.3 is /bin/zsh-4.2.3 zsh-4.2.5 is /bin/zsh-4.2.5 zsh-4.2.6 is /bin/zsh-4.2.6 That should find all the names in the command hash table that begin with zsh, and then pass them all to whence to find the full paths. I'm not sure why zshrc and zshenv are in the command hash table.