Mientras esté en el /
directorio y use ls -a
el resultado contendrá .
y..
Puedo entender la existencia de un .
puntero al directorio en sí. ¿Cuál es el significado de tener el ..
en el /
directorio mientras no hay un directorio principal para el /
?
Respuesta1
Muchos softwares funcionan según suposiciones,node hecho, POSIX.1 les garantiza, pero tradicionalmente es el caso en los sistemas UNIX y está consagrado en gran parte de la literatura UNIX, que (para citar una de esas piezas de literatura UNIX):
Cada directorio contiene los nombres de archivo punto y punto-punto (.
y..
) cuyos números de inodo son los del directorio y su directorio principal, respectivamente.[…]El programamkfs
inicializa un sistema de archivos para que.
y..
del directorio raíz tengan el número de inodo raíz del sistema de archivos.— Maurice J. Bach (1986).El diseño del sistema operativo UNIX. Prentice Hall. pag. 73
Por ejemplo: la antigua getcwd()
función de biblioteca (en sistemas que no proporcionaban soporte especial del kernel para ella) se basa en esto parasaber cuando pararrastrear la cadena de ..
entradas al componer el nombre del directorio actual. Se detiene cuando llega a un directorio que es su propio padre o no puede atravesarlo ..
.
Entonces, la razón por la que el directorio raíz tiene (o en lo que respecta a los programas en modo de aplicación, al menosaparecetener como se ve a través de la API del sistema) una ..
entrada es que muchas cosas se basan en la suposición de quecadadirectorio tiene ..
, y que ..
en la raíz se puede usar un bucle para detectar que uno está en la raíz.
De hecho, POSIX.1 no garantiza que el directorio raíz tenga un ..
, simplemente especifica queLos programas tienen que tener en cuenta la posibilidad de un bucle sihay un ..
en el directorio raíz. Esto es para permitir que los sistemas que no son UNIX también sean compatibles con POSIX. Hay sistemas de archivos donde elausenciaof ..
indica que un directorio es un directorio raíz. Y hay, como comenta el propio Bach, sistemas en los que existe un directorioarribala raíz, que POSIX.1 permite en su discusión de nombres de ruta absolutos que comienzan condosbarras (similar a la Convención de nomenclatura universal utilizada en los sistemas de red de área local de Microsoft).
Linux (y por tanto Ubuntu Linux), sin embargo, ofrece las garantías más estrictas del paradigma UNIX.
Respuesta2
Muy simple: mediante directorio de archivos, ./
significaesta carpeta, mientras que ../
significadonde esta el archivo(por ejemplo, cuando estoy en el directorio user/home/me/Desktop
, ../
me llevará a /user/home/me
).