Digamos que hago lo siguiente:
cd /some/path
ln -s /target/path symbolic_name
Si entonces hacer:
cd /some/path
cd symbolic_name
pwd
Yo obtengo:
/some/path/symblic_name
y no:
/target/path
¿Hay alguna manera de que el shell "resuelva completamente" un enlace simbólico (es decir, actualizar CWD, etc.), como si lo hubiera hecho directamente:
cd /target/path
?
Necesito ejecutar algunos programas que parecen ser "conscientes" o "sensibles" acerca de cómo llego a mi ruta de destino, y me gustaría que piensen que llegué a la ruta de destino como si lo hubiera hecho cd /target/pathdirectamente.

pwd -Poalias pwd='pwd -P'tambiéncd -Pir a la ruta física en lugar del enlace simbólico.Respuestas:
Su caparazón tiene un incorporado
pwd, que trata de ser "inteligente". Después decdhacer un enlace simbólico, el internopwdfalsifica la salida como si se hubiera movido a un directorio real.Pase la
-Popción apwd, es decir, ejecutarpwd -P. La-Popción (para "físico") le dice quepwdno haga ningún seguimiento simbólico de enlaces y que muestre la ruta "real" al directorio.Alternativamente, también debería haber un binario real
pwd, que no hace (e incluso no puede hacer) este tipo de magia. Solo usa esa explicidad binaria:fuente
Tratar
cd -P <symlink_dirname>.También puede usar
set -o physicalpara hacer que este comportamiento persista durante la vida útil del shell en ejecución.Echa un vistazo a https://stackoverflow.com/questions/10456784/behavior-of-cd-bash-on-symbolic-links para obtener más información.
fuente