Notez qu'il ne s'agit pas d' un doublon. Je demande de désactiver le cache, pas de le vider. Si vous avez un cache à vider, il n'est évidemment pas désactivé.
Les rares fois où je remarque le cache de bash des choses qu'il a trouvées sur le chemin, ce n'est pas parce qu'il est utile, c'est parce que c'est énervant. Un exemple:
~ 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
Dans une autre coquille ...
~ dc$ which which
/usr/bin/which
Je suis sûr que cette mise en cache était logique au bon vieux temps, lorsque les disques étaient lents et que la mémoire était chère et limitée et que vous ne pouviez donc pas beaucoup mettre en cache - la mise en cache d'un chemin est moins chère que la mise en cache de tous les blocs de disque nécessaires pour trouver une commande . Mais de nos jours, il n'offre aucun avantage notable et cause plus de problèmes qu'il n'en résout. C'est une erreur, qui frôle le fait d'être un bug.
Et je ne peux même pas trouver un moyen de le désactiver. Des pointeurs?
set +hpour désactiver le hachage.
/usr/binreste entièrement dans le cache.