which -a cmd
procura todos os arquivos regulares chamados cmd
para os quais você tem permissão de execução nos diretórios em $path
(além de aliases, funções, builtins ...).
Enquanto which cmd
retorna o comando que zsh
executaria ( which
é embutido em zsh
como em tcsh
, mas diferente da maioria das outras shells).
zsh
, como a maioria dos outros shells lembra os caminhos dos executáveis em uma tabela hash
para não ter que procurá-los em todos os diretórios em $path
cada vez que você invoca-los.
Essa tabela hash (exposta na matriz $commands
associativa em zsh
) pode ser manipulada com o comando hash
(comando shell POSIX padrão).
Se você executou o comando brew
(ou which/type/whence brew
, ou usou a conclusão de comando ou qualquer coisa que tenha preparado esse hash / cache) antes de ser adicionado a /usr/local/Cellar/zplug/HEAD-9fdb388/bin
ou antes de /usr/local/Cellar/zplug/HEAD-9fdb388/bin
ser adicionado a $path
, zsh
teria lembrado seu caminho e armazenado como $commands[brew]=/usr/local/bin/brew
.
Nesse caso, você pode usar hash -r
(como no shell Bourne) ou rehash
(como em csh) para ter zsh
esquecer os comandos lembrados (invalidar isso cache ), para que possa consultá-lo da próxima vez e encontrá-lo na nova localização.