Respuestas:
El pwd shell incorporado utiliza la ruta que el shell realiza un seguimiento cuando usted cd(y lo almacena $PWD). Esto significa que si tiene un enlace simbólico a una ruta compleja (profunda), le dirá lo que escribió para cambiar a ese directorio en lugar de la ruta real. Esto se hace para darle lo que desea la mayor parte del tiempo.
/bin/pwdutiliza la getcwdllamada al sistema (que actualmente es una llamada a la biblioteca, lectura /proc/self/cwd) que devuelve la ruta canónica para el directorio actual, sin todos los recorridos de enlaces simbólicos.
Como Steven D señaló, pwdtiene la -Popción de ignorar $PWD. También tiene la -Lopción de devolver el contenido de $PWD. La página de manual para pwdno dice qué opción se usa por defecto, pero la experiencia me dice que la descripción anterior es correcta (shell pwdvs. /bin/pwd). Sin embargo, probablemente no deberías confiar en eso y solo usarlo pwd -P.
/bin/pwdes GNU pwdcuando POSIXLY_CORRECT no está configurado. En sistemas POSIX donde pwdestá el /bin. /bin/pwdusará $ PWD y puede devolver rutas con enlaces simbólicos. GNU pwd se comportará de esa manera POSIX cuando encuentre una variable POSIXLY_CORRECT en su entorno.
man pwdshell para encontrar opciones para este comando.