Tenha cuidado ao usar o comando which
. Melhor usar o comando type ...
.
$ type ln
ln is /bin/ln
Você também pode usar o comando whereis
:
$ whereis ln
ln: /bin/ln /usr/share/man/man1p/ln.1p.gz /usr/share/man/man1/ln.1.gz
Eu só sei de duas maneiras: alias foo=bar
e function foo() { bar }
.
A razão pela qual estou perguntando é que - de repente em uma das minhas sessões bash - não consigo executar o comando ln
porque bash
está com erros com -bash: /usr/local/.../ln: No such file or directory
(onde o /usr/local/.../
é um das entradas na minha variável de ambiente PATH
).
Não é um problema de PATH
, porque se eu executar which ln
, ele gerará o binário esperado de /usr/bin/ln
(que eu posso executar bem se especificar o caminho absoluto).
Também verifiquei ln
em minhas declarações alias
e function
, e não há nada:
$ declare -f | grep ln
$ alias | grep ln
O problema está ocorrendo apenas em uma sessão bash. Se eu iniciar um novo shell, ele funcionará bem novamente, mas eu quero saber o que causou esse problema de repente nesta sessão específica do bash.
Alguma idéia do que poderia estar causando isso?