GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi Bash ne donne-t-il aucun fichier ou répertoire de ce type pour un programme qui se trouve dans mon PATH ?

Vous avez installé docker-compose une fois à un endroit. Ensuite, vous l'avez supprimé et installé à un autre endroit.

De cette façon, vous avez rencontré une optimisation de bash pour ne pas avoir à rechercher $PATH chaque fois que vous tapez une commande, en mettant en cache les résultats en mémoire. Le hachage de chemin est une table de hachage, maintenue par bash, qui contient les emplacements sur le disque où le shell doit rechercher des programmes exécutables lorsqu'une commande est exécutée. La table de hachage est effacée lors d'événements qui invalident manifestement les résultats (comme la modification de $PATH), ou en utilisant le hash intégré commande.

Lorsque vous avez exécuté à nouveau docker-compose, bash a simplement essayé de le récupérer là où il l'avait trouvé la dernière fois, seulement qu'il n'y était plus, vous avez donc reçu ce message d'erreur.

Pour invalider le hachage de docker-compose, exécutez la commande :

 hash docker-compose

Linux
  1. Pourquoi ENOENT signifie-t-il Aucun fichier ou répertoire de ce type ?

  2. Ajouter un script bash au chemin

  3. rechercher la commande dans le script bash entraînant l'erreur No such file or directory uniquement pour les répertoires ?

  4. Erreur fatale :cuda.h :aucun fichier ou répertoire de ce type

  5. bash :./helloworld_s :aucun fichier ou répertoire de ce type. Le dossier est clairement là

8 commandes de navigation de fichiers Linux essentielles pour les nouveaux utilisateurs

Impossible d'exécuter le programme mvn error=2, Aucun fichier ou répertoire de ce type

Bash :Aucun fichier ou répertoire de ce type ?

sys/types.h :aucun fichier ou répertoire de ce type

source conda désactiver :bash :désactiver :aucun fichier ou répertoire de ce type

Créer un programme dans bin