Estoy tratando de entender la naturaleza de ..(doble punto). Parece apuntar a diferentes objetivos según cómo accedas a él.
Ejemplo:-
/outer/
middle/
inner/
inner --> ./middle/inner/
Ahora, /outer/middle/inner/..conduce a /outer/middle/, pero si accedo a través del enlace simbólico, /outer/inner/..conduce a /outer/. Parece que hay dos diferentes ..aquí.
¿Qué es ..exactamente? enlace simbólico? enlace duro? ¿O se genera dinámicamente dependiendo de la ruta cuando se accede al directorio? O tal vez mi comprensión de los enlaces simbólicos es incorrecta.
Editar:
Otra observación relacionada
/outer/
middle/
file
inner/
f --> ./../file
inner --> ./middle/inner/
Ahora si trato de acceder al archivo a través de /outer/inner/fél funciona. Pero no debería, ya /outer/inner/../fileque no apunta a un archivo. el archivo está adentro /outer/middle/inner/... ¿Esto parece contradecir el comportamiento de arriba?
fuente

Respuestas:
..es un enlace fijo al directorio padre que se crea como parte de la entrada del directorio.Si publica
ls -ailen cada uno de estos directorios, debería ver que todas las siguientes entradas tienen el mismoinode(primer campo) y el recuento de enlaces duros (tercer campo):..cuando se ejecutals -aileninner.cuando se ejecutals -ailenmiddlemiddlecuando se ejecutals -ailenouterHay una
..entrada eninner. Si su directorio de trabajo actual esouter, debería ver los mismos resultados (una lista de directorios demiddle)ls -al inner/..ls -al middle/inner/..La única situación en la que "el acceso"
..a través del enlace simbólico debe proporcionar un comportamiento diferente es sicdeninnerel uso del enlace simbólico, para que su lógica de directorio de trabajo (pwd -L) difiere de su físico directorio de trabajo (pwd -P). En este caso,cd ..lo llevará de vuelta aouterno porque haya una..entrada diferente , sino porque su shell está realizando un seguimiento de su directorio de trabajo lógico y le muestra un nivel, en lugar de hacer referencia a la..entrada realinner.Esta es una conveniencia proporcionada, por ejemplo,
bashcomo parte delcdcomando incorporado . Puede anular esto pidiéndole que cambie a la..entrada real condonde
-Pindicacd(como en el casopwdanterior) que use la ruta física.fuente
cdpara verificar. Entonces, corrígeme si estoy equivocado,..siempre apunta al padre físico, si usa un enlace simbólico.., se dirigirá al padre (físico) real. La confusión ocurre solo alcdingresar en directorios.ls -laite muestra que/..es el directorio raíz en sí, nuevamente (también conocido como/.o/). A menos que el sistema de archivos esté roto, no debería haber otro caso donde. == ..; incluso cuando se monta un fs en algún lugar, obtiene el correcto..del padre (temporal) (por lo que hay algo de magia allí,..no es solo una entrada simple y estática en la tabla del sistema de archivos).