¿Por qué funciona 'sudo pwd' pero no 'sudo cd'?

¿Por qué funciona 'sudo pwd' pero no 'sudo cd'?

Muchas de las respuestas de StackOverflow sugieren que se debe a que cdes una función incorporada, pero type cdambas type pwddevuelven "shell incorporada" y solo sudo cddevuelven un "comando no encontrado".

Entonces, ¿se cdmaneja como un caso especial, al contrario de muchas respuestas sobre SO, que es " sudosolo funciona con programas"?

Respuesta1

pwdexiste como un shell incorporado (razón por la cual type pwddevuelve que es un shell incorporado) y por separado como unUtilidad principal de GNU. La versión pwdque utiliza su sistema es laUtilidad principal de GNUversión. Es un ejecutable y como tal se puede utilizar sudo para ejecutarlo; a diferencia de cdcuál es un comando incorporado del shell.

Puedes verificar esto por ti mismo.

Escriba ambos comandos usted mismo y observe los resultados. (si hay varias versiones del mismo comando en su sistema, el whichcomando le indicará cuál se está invocando cuando lo ingrese)

which pwd

which cd

Un shell incorporado no devolverá ninguna ruta de carpeta a un ejecutable cuando ejecute el whichcomando. Aquí hay ejemplos de resultados de ambos comandos en mi sistema:

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)

Respuesta2

Hay un pwdejecutable en alguna parte (pruébelo whereis pwd) y sudolo usa.

información relacionada