El comando pwd es un shell incorporado y / bin / pwd. En circunstancias normales, el builtin se ejecutará con preferencia a / bin / pwd. El comando pwd se puede llamar como pwd -L
o pwd -P
Tanto el valor predeterminado incorporado como / bin / pwd pwd -L
desde la página de manual
-L, - uso lógico PWD del entorno, incluso si contiene enlaces simbólicos
así que cuando ejecuta pwd, realmente ejecuta pwd -L, que en efecto imprime $ PWD (si existe). Cuando ejecuta sudo pwd
, sudo solo proporciona las variables de entorno que se le ha dicho que pase a través de env_keep
directivas. PWD normalmente no está en esta lista, por lo que sudo pwd tiene que averiguar dónde está y, de hecho, se ejecuta comopwd -P
-P, --físico evitar todos los enlaces simbólicos
La forma de resolver el problema es usarlo pwd -P
si desea consistentemente la ruta del directorio físico o (como dice @Felix) agregar PWD a la lista de variables de entorno para mantener a través de una directiva env_keep en sudoers
env_keep += "PWD"