Trying to get whence to be both case insensitive and accepting of patterns I noticed something interesting.  The first item in my $PATH is the dot, I take this as not unusual because one might want to execute some command found in the current directory. Anyway: 0 /aWorking/Zsh/Source/Wk 1 $ whence -mavS "(#i)*rap" RAP is an alias for echo howdy _trap is an autoload shell function rap is a shell function from rap trap is a shell builtin bwrap is /usr/bin/bwrap select-default-iwrap is /usr/bin/select-default-iwrap ... I have a whole load of various absurdly named test files in the current directory but whence doesn't find them.  However if I modify my PATH to make the dot expand to the ( do we say 'canonical' ? ) ... the actual name of the current directory: 0 /aWorking/Zsh/Source/Wk 1 $ vared PATH /aWorking/Zsh/Source/Wk:/aWorking/Zsh/System:/aWorking/Bin:/usr/local/bin:/usr/sbin:/usr/bin: ... everything is found: 0 /aWorking/Zsh/Source/Wk 1 $ whence -mavS "(#i)*rap" RAP is an alias for echo howdy _trap is an autoload shell function rap is a shell function from rap trap is a shell builtin RAP is /aWorking/Zsh/Source/Wk/RAP RAP is RAP RAp is /aWorking/Zsh/Source/Wk/RAp RAp is RAp RaP is /aWorking/Zsh/Source/Wk/RaP -> /aWorking/Zsh/Source/Wk/RAP RaP is RaP bwrap is /usr/bin/bwrap rAp is /aWorking/Zsh/Source/Wk/rAp rAp is rAp select-default-iwrap is /usr/bin/select-default-iwrap ... all my silly files show up, infact they show up twice.  The eg: "RAP is RAP" doesn't seem to say very much when we already have: "RAP is /aWorking/Zsh/Source/Wk/RAP" We can even get three restatements:     2 /aWorking/Zsh/Source/Wk 0 $ /bin     2 /bin 0 $ whence -mavS "zsh"     zsh is ./zsh     zsh is /usr/bin/zsh     zsh is zsh ... again the last line doesn't seem very useful.  The first is of course true and the second line seems to highlight the fact that in Debian '/bin' is a link to '/usr/bin'. Thoughts? Can I have the full output while leaving the dot in my path?