
Viele der StackOverflow-Antworten legen nahe, dass es daran liegt, dass cd
es ein integriertes Element ist, aber type cd
beide type pwd
geben „Shell-integriert“ zurück und geben nur sudo cd
„Befehl nicht gefunden“ zurück.
Wird das also im Gegensatz zu vielen Antworten auf SO, die besagen, dass es „ nur mit Programmen funktioniert“, cd
als Sonderfall behandelt ?sudo
Antwort1
pwd
existiert sowohl als Shell-Builtin (weshalb type pwd
es als Shell-Builtin zurückgegeben wird) als auch separat alsGNU Core-DienstprogrammDie Version von, pwd
die Ihr System verwendet, ist dieGNU Core-DienstprogrammVersion. Es handelt sich um eine ausführbare Datei und kann daher mit sudo ausgeführt werden; im Gegensatz zu cd
ist dies ein in die Shell integrierter Befehl.
Sie können dies selbst überprüfen.
Geben Sie beide Befehle selbst ein und beobachten Sie die Ergebnisse. (Wenn in Ihrem System mehrere Versionen desselben Befehls vorhanden sind, which
wird Ihnen beim Eingeben des Befehls mitgeteilt, welche Version aufgerufen wird.)
which pwd
which cd
Ein Shell-Builtin gibt keinen Ordnerpfad zu einer ausführbaren Datei zurück, wenn Sie den which
Befehl ausführen. Hier sind Beispielausgaben beider Befehle auf meinem System:
nate@linux:~> which pwd
/usr/bin/pwd
nate@linux:~> which cd
which: no cd in (/home/nate/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin:/home/nate/Scripts:/home/nate/Scripts)
Antwort2
Es gibt pwd
irgendwo eine ausführbare Datei (try whereis pwd
) und sudo
verwendet diese.