Sé que cuando se inicia un proceso, hereda el directorio de trabajo de su proceso principal. Pero, ¿hereda tanto el directorio de trabajo lógico como el físico o solo el directorio de trabajo físico?
Respuesta1
Mmm, más o menos. El directorio de trabajo "lógico" se incluye en la variable de entorno PWD
.environ(7)
dice que está "establecido por algunos shells", por lo que obviamente depende de la aplicación. Otro problema es si el otro programa lo lee:
/tmp$ ln -s ~ link
/tmp$ cd link
/tmp/link$ bash -c "pwd"
/tmp/link
/tmp/link$ zsh -c "pwd"
/home/itvirta
/tmp/link$ dash -c "pwd"
/tmp/link
Bash y dash
parece contar con ello, zsh
no (en mi sistema, estoy seguro de que es configurable).
Respuesta2
ElobtenercwdLa llamada al sistema devuelve nombres de rutas físicas, comoPOSIXmandatos que
El nombre de la ruta no contendrá componentes que sean punto o punto-punto, ni enlaces simbólicos.
Linux parece utilizar un mecanismo de nivel más bajo que los nombres para pasar el CWD, ya que puede cambiar el nombre de un directorio mientras otro programa lo usa como su CWD.