Der grundlegende ausführbare Pfad für Linux wird nicht angezeigt

Der grundlegende ausführbare Pfad für Linux wird nicht angezeigt

Ich versuche, den Pfad grundlegender Befehle wie lsoder cdmithilfe whichdes Befehls zu finden. Ich sehe den Pfad für, lsaber nicht für cd. Natürlich funktionieren beide Befehle einwandfrei. Irgendeine Idee?

$ which ls
/bin/ls
$ which cd
$

Antwort1

cdist immer ein integrierter Befehl, der von der Shell selbst bereitgestellt wird. Er wird nicht als externes Dienstprogramm gefunden. Dies ist in keiner Weise spezifisch für Linux.

Von demAbschnitt „APPLICATION USAGE“ für cdim POSIX-Standard:

Da cddies die aktuelle Shell-Ausführungsumgebung betrifft, wird es immer als reguläre integrierte Shell bereitgestellt. Wenn es in einer Subshell oder einer separaten Dienstprogramm-Ausführungsumgebung aufgerufen wird, beispielsweise in einer der folgenden:

(cd /tmp)
nohup cd
find . -exec cd {} \;

Das Arbeitsverzeichnis der Umgebung des Anrufers wird dadurch nicht beeinflusst.


Den Pfad eines Befehls können Sie portable wie folgt ermitteln command -v:

bash-4.4$ command -v ls
/bin/ls
bash-4.4$ command -v cd
cd

typewird etwas ausführlicher sein:

bash-4.4$ type ls
ls is /bin/ls
bash-4.4$ type cd
cd is a shell builtin

Siehe auch "Warum nicht „welches“ verwenden? Was soll man dann verwenden?"

verwandte Informationen