O que determina o caminho onde o sistema procura um arquivo?

O que determina o caminho onde o sistema procura um arquivo?

estou tentando conseguirnpmtrabalhar. No processo, parece que tenho duas versões instaladas: uma corrompida instalada em ~/bin e outra que acabei de compilar e executar make installpara colocá-la em /usr/local/bin/npm.

Então, mudei toda a pasta ~/bin para ~/old/bin ... mas ainda assim, quando executo npmas pesquisas do sistema em ~/bin:

$ which npm
/usr/local/bin/npm
$ alias npm
-bash: alias: npm: not found
$ npm
-bash: /home/ubuntu/bin/npm: No such file or directory
$ echo $PATH
/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$

O que faz com que o Ubuntu procure por npm em ~/bin/npm? Estou usando o Ubuntu 11.10. Não sei se a pergunta é específica do Ubuntu ou não, ela pode ser movida para o askubuntu, se necessário.

Eu vejo ~/bin no PATH, mas pelo que entendi, isso significa apenas que se o npm estivesse presente em ~/bin então ele o teria usado ... mas por que o bash insiste em procurá-lo especificamente lá? Por que não find /usr/local/bin/npm, mesmo que o whichcomando o encontre?

Responder1

A localização anteriormente conhecida do executável provavelmente foi criptografada pelo shell. Redefinir o cache do shell hash -rdeve resolver o problema.

Se não quiser redefinir todo o cache, você pode excluir a entrada individual para npmusar hash -d npm.

informação relacionada