
Mi pregunta básica es ¿por qué ambos caminos apuntan a casa (es decir, ~
)? ¿Apunta a la misma casa o está duplicada?
Dudo que esté duplicado, así que si no, ¿cómo cd ..
decide a qué directorio llevarme de regreso?
Respuesta1
El cd ..
comportamiento dependerá del shell, la configuración del shell y de si (como es probable en este caso) hay enlaces simbólicos involucrados.
bash-4.1$ cd /var/tmp
bash-4.1$ mkdir -p real/cats
bash-4.1$ ln -s real/cats dogs
bash-4.1$ cd dogs/
bash-4.1$ pwd
/var/tmp/dogs
bash-4.1$ pwd -P
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp
bash-4.1$ set -o physical
bash-4.1$ cd dogs
bash-4.1$ pwd
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp/real
bash-4.1$
La investigación del /var/mail
directorio ls
debería revelar si hay algún enlace simbólico realizado, supongo, por Apple.
Respuesta2
En macOS (que supongo que es porque mencionas /Users
), /var/mail/username
es el mbox
buzón de la bandeja de entrada formateado para el usuario username
y /Users/username
es el directorio de inicio para el mismo usuario.
En una instalación normal y no modificada de macOS /var/mail/username
,noserá un enlace simbólico al directorio de inicio del usuario, ni será /Users/username
un enlace a /var/mail/username
.
cd ..
funcionará de forma predeterminada como cd -L ..
, es decir, lo llevará hasta ellógicodirectorio principal en lugar delfísicodirectorio de padres ( cd -P ..
).
Del ksh
manual en macOS:
De forma predeterminada, los nombres de enlaces simbólicos se tratan literalmente al encontrar el nombre del directorio. Esto es equivalente a la
-L
opción. La-P
opción hace que los enlaces simbólicos se resuelvan al determinar el directorio. La última instancia de-L
o-P
en la línea de comando determina qué método se utiliza.