1 votes

Pourquoi 'sudo pwd' fonctionne-t-il mais pas 'sudo cd' ?

De nombreuses réponses de StackOverflow suggèrent que c'est parce que cd est un buildin, mais type cd y type pwd les deux renvoient "Shell builtin" et seulement sudo cd renvoie un "commande non trouvée".

Alors, c'est cd traité comme un cas particulier contrairement à de nombreuses réponses sur SO qui est " sudo ne fonctionne qu'avec des programmes" ?

3voto

Hyunseok Oh Points 21

pwd existe à la fois comme un Shell builtin (ce qui est pourquoi type pwd retourne que c'est un Shell builtin) et séparément comme un Utilitaire de base GNU . La version de pwd que votre système utilise est le Utilitaire de base GNU version. Il s'agit d'un exécutable et en tant que tel sudo peut être utilisé pour l'exécuter ; contrairement à cd qui est une commande intégrée de Shell.

Vous pouvez le vérifier par vous-même.

Tapez vous-même ces deux commandes et observez les résultats. (s'il y a plusieurs versions de la même commande dans votre système, la fonction which vous dira laquelle est invoquée lorsque vous la saisissez)

which pwd

which cd

Un buildin Shell ne retournera aucun chemin de dossier vers un exécutable lorsque vous exécutez la commande which commandement. Voici des exemples de sorties des deux commandes sur mon système :

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)

2voto

Kamil Maciorowski Points 57004

Il existe un pwd exécutable quelque part (essayez whereis pwd ) et sudo l'utilise.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X