Observe que isso não é uma duplicata. Estou perguntando sobre desativar o cache, não limpá-lo. Se você tiver um cache para limpar, obviamente ele não está desativado.
Nas raras ocasiões em que percebo o cache do bash de coisas que ele encontrou no caminho, não é porque é útil, é porque é muito chato. Um exemplo:
~ dc$ export PATH=$HOME/bin:$PATH
~ dc$ cat bin/which
#!/bin/bash
echo "my which"
~ dc$ which
my which
~ dc$ rm bin/which
~ dc$ which which
-bash: /Users/dc/bin/which: No such file or directory
Em outra concha ...
~ dc$ which which
/usr/bin/which
Tenho certeza de que esse cache fazia sentido nos velhos tempos, quando os discos eram lentos e a memória era cara e limitada e, portanto, você não podia armazenar muito em cache - o armazenamento em cache de um caminho é mais barato do que o armazenamento em cache de todos os blocos de disco necessários para encontrar um comando . Atualmente, porém, não oferece benefícios visíveis e causa mais problemas do que resolve. É uma falha de funcionalidade, prestes a ser um bug.
E nem consigo encontrar uma maneira de desativá-lo. Alguma dica?
set +hpara desativar o hash.
/usr/binpermaneça inteiramente no cache.