En la práctica, las carpetas denominadas .
y ..
se refieren a la carpeta actual y a su carpeta padre, respectivamente. Para el directorio root (denominado /
) el ..
nombre se refiere simplemente a sí mismo.
Los nombres "." y ".." son especiales en el sentido de que no representan necesariamente algo realmente almacenado en el sistema de archivos en el disco, como otros nombres. En algunos sistemas de archivos hay realmente enlaces duros llamados "." y "..", pero otros sistemas de archivos no los almacenan como tales.
Asimismo, en los sistemas operativos modernos, como MacOS, es posible montar varios sistemas de archivos en la misma estructura de carpetas. En los límites de estas intersecciones, el ".." no se refiere a un enlace almacenado dentro de ese sistema de archivos, sino que se refiere a una carpeta en un sistema de archivos completamente diferente.
En ese caso, estos nombres son puramente virtuales, aunque siguen proporcionando la misma funcionalidad.
La presencia de estos nombres está en realidad dictada por el estándar POSIX para sistemas operativos, con el que MacOS está certificado desde la versión 10.5. En particular, el estándar especifica que:
El punto de nombre de archivo especial se referirá al directorio especificado por su predecesor. El nombre de archivo especial punto se referirá al directorio padre de su directorio predecesor. Como caso especial, en el directorio Root, dot-dot puede referirse al propio directorio Root.
Al utilizar la interfaz de línea de comandos, se acostumbrará rápidamente a la ..
nombre, ya que a menudo se utilizan comandos como cd ..
para ir a la carpeta principal.
El .
El nombre cumple una función importante en términos de seguridad, ya que se utiliza para indicar al shell (la interfaz de línea de comandos) que se desea ejecutar un programa ubicado en la carpeta actual en lugar de un comando suministrado por el sistema en otra ubicación. Imagina que no tuviéramos el .
y el sistema simplemente iniciaba el programa en la carpeta actual sin tenerlo explícitamente - entonces un usuario malintencionado podría añadir programas con nombres de comandos comunes a las carpetas del ordenador, y cuando otro usuario se encontrara con esta carpeta y pretendiera ejecutar un comando común (como ls
para listar archivos o cd
para cambiar de directorio) en su lugar estarían iniciando un programa malicioso.
Históricamente estos nombres .
y ..
se han utilizado en muchos sistemas operativos diferentes, incluyendo por ejemplo Windows y Linux. Tiene su origen en el sistema operativo Multics (originalmente de 1969), que fue el primer sistema operativo en presentar un sistema de archivos jerárquico. Multics fue una de las principales inspiraciones de lo que finalmente se convirtió en Unix, y en el proceso de desarrollo colocan los archivos según un "directorio" (carpeta actual) y según el "directorio del directorio" (carpeta padre). Estos términos se abreviaron como "d" y "dd", y con el tiempo se pronunciaron como "punto" y "punto-punto", dando paso a su representación actual