Wenn Sie den Namen eines Programms eingeben a.out
, sucht das System nach der Datei in Ihrem PATH. Auf meinem System ist PATH auf eingestellt
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Ihre ist wahrscheinlich ähnlich. Geben Sie zur Überprüfung echo $PATH
ein Terminal ein.
Das System durchsucht diese Verzeichnisse in der angegebenen Reihenfolge. Wenn es das Programm nicht findet, wird ein command not found
Fehler ausgegeben .
Wenn Sie den Befehl mit ./
effektiv voranstellen, heißt es: "Vergessen Sie den PFAD. Ich möchte, dass Sie nur im aktuellen Verzeichnis suchen."
In ähnlicher Weise können Sie das System anweisen, nur an einer anderen bestimmten Stelle zu suchen, indem Sie dem Befehl einen relativen oder absoluten Pfad voranstellen, z.
./Debug/hello
: "Suche hello
im Debug-Unterverzeichnis meines aktuellen Verzeichnisses."
oder /bin/ls
: " ls
im Verzeichnis suchen /bin
"
Standardmäßig befindet sich das aktuelle Verzeichnis nicht im Pfad, da dies als Sicherheitsrisiko angesehen wird. Siehe Warum ist. standardmäßig nicht im Pfad? auf Superuser für warum.
Es ist möglich, das aktuelle Verzeichnis zu Ihrem PATH hinzuzufügen, aber aus den in der verknüpften Frage angegebenen Gründen würde ich es nicht empfehlen.
Ich bin mir nicht sicher, warum in der Antwort angegeben wurde, dass Ihr Pfad nicht geändert werden soll, da in der Antwort auf SuperUser angegeben wurde, dass dies eine "sehr lahme und nutzlose Antivirenmaßnahme ist und nichts Sie davon abhält, dem Pfad selbst einen Punkt hinzuzufügen".