GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum gibt Bash keine solche Datei oder kein solches Verzeichnis für ein Programm an, das sich in meinem PATH befindet?

Sie haben docker-compose einmal an einem Ort installiert. Dann haben Sie es gelöscht und an einem anderen Ort installiert.

Auf diese Weise sind Sie auf eine Optimierung von bash gestoßen, damit Sie nicht jedes Mal, wenn Sie einen Befehl eingeben, nach $PATH suchen müssen, indem Sie die Ergebnisse im Speicher zwischenspeichern. Der Pfad-Hash ist eine von bash verwaltete Hash-Tabelle, die die Speicherorte auf der Festplatte enthält die Shell sollte nach ausführbaren Programmen suchen, wenn ein Befehl ausgeführt wird. Die Hash-Tabelle wird bei Ereignissen gelöscht, die die Ergebnisse offensichtlich ungültig machen (z. B. das Ändern von $PATH), oder durch Verwenden des eingebauten hash Befehl.

Als Sie docker-compose erneut ausgeführt haben, hat bash nur versucht, es von dort zu holen, wo es es das letzte Mal gefunden hat, nur dass es nicht mehr da war, also haben Sie diese Fehlermeldung erhalten.

Führen Sie den folgenden Befehl aus, um den Hash für docker-compose ungültig zu machen:

 hash docker-compose

Linux
  1. Warum funktioniert die Bash-Prozesssubstitution bei einigen Befehlen nicht?

  2. Warum liefert `md5sum` nicht den gleichen Hash wie das Internet?

  3. Fügen Sie dem Pfad ein Bash-Skript hinzu

  4. Find-Befehl in Bash-Skript, was zu No such file or directory error only for directorys führt?

  5. Bash:Keine solche Datei oder Verzeichnis?

8 grundlegende Linux-Dateinavigationsbefehle für neue Benutzer

Programm mvn kann nicht ausgeführt werden error=2, Keine solche Datei oder Verzeichnis

Warum verwendet rsync keine Delta-Übertragung für lokale Dateien?

Warum gibt mir das Wgeting eines Bildes eine Datei und kein Bild?

Warum gibt dd von /dev/random unterschiedliche Dateigrößen an?

Erstellen eines Programms in bin