Históricamente , el primer sistema de archivos Unix creó dos entradas en cada directorio: .
apuntando al directorio en sí y ..
apuntando a su padre. Esto proporcionó una manera fácil de atravesar el sistema de archivos, tanto para aplicaciones como para el sistema operativo mismo.
Por lo tanto, cada directorio tiene un recuento de enlaces de 2 + n donde n es el número de subdirectorios. Los enlaces son la entrada para ese directorio en su padre, la propia .
entrada del directorio y la ..
entrada en cada subdirectorio. Por ejemplo, suponga que este es el contenido del subárbol enraizado en /parent
todos los directorios:
/parent
/parent/dir
/parent/dir/sub1
/parent/dir/sub2
/parent/dir/sub3
Luego dir
tiene un recuento de enlaces de 5: la dir
entrada en /parent
, la .
entrada en /parent/dir
y las tres ..
entradas en cada uno de /parent/dir/sub1
, /parent/dir/sub2
y /parent/dir/sub3
. Como /parent/dir/sub1
no tiene subdirectorio, su número de enlaces es 2 (la sub1
entrada /parent/dir
y la .
entrada /parent/dir/sub1
).
Para minimizar la cantidad de mayúsculas y minúsculas especiales para el directorio raíz, que no tiene un padre "adecuado", el directorio raíz contiene una ..
entrada que apunta a sí mismo. De esta manera, también tiene un conteo de enlaces de 2 más el número de subdirectorios, siendo 2 /.
y /..
.
Los sistemas de archivos posteriores han tendido a realizar un seguimiento de los directorios principales en la memoria y, por lo general, no necesitan .
y ..
existen como entradas reales; Los sistemas Unix modernos típicos tratan .
y ..
como valores especiales como parte del código del sistema de archivos independiente del tipo de sistema de archivos. Algunos sistemas de archivos aún incluyen entradas .
y ..
, o pretenden hacerlo aunque no aparezca nada en el disco.
La mayoría de los sistemas de ficheros todavía informan de un número de enlaces de 2 + n para los directorios independientemente de si .
y ..
existen entradas, pero hay excepciones, por ejemplo btrfs no hace esto.