Je ne connais que deux façons: alias foo=bar
et function foo() { bar }
.
La raison pour laquelle je pose la question est que - tout d'un coup dans l'une de mes sessions bash - je ne peux pas exécuter la ln
commande car bash
je fais une erreur avec -bash: /usr/local/.../ln: No such file or directory
(où /usr/local/.../
est l'une des entrées de ma PATH
variable d'environnement).
Ce n'est pas un PATH
problème cependant, car si je l'exécute, which ln
il génère le binaire attendu de /usr/bin/ln
(que je peux exécuter correctement si je spécifie le chemin absolu).
J'ai également vérifié pour ln
mes alias
et function
déclarations, et il n'y a rien:
$ declare -f | grep ln
$ alias | grep ln
Le problème se produit uniquement dans une session bash. Si je démarre un nouveau shell, cela fonctionne à nouveau correctement, mais je veux savoir ce qui a causé ce problème tout à coup dans cette session particulière de bash.
Des idées sur ce qui pourrait être à l'origine de cela?
type ln
j'obtiensln is hashed (/usr/local/.../ln)
ce qui semble être le problème, mais qu'est-ce que cela signifie exactement que c'est "haché"? Je n'ai jamais entendu parler de cette fonctionnalité dans bash.hash -l
commande. Il est construit dynamiquement lorsque vous utilisez des commandes.hash -r
pour réinitialiser la table de hachage de la commande vers le chemin et je suis deln
retour en état de marche maintenant.