Storicamente , il primo filesystem Unix ha creato due voci in ogni directory: .
indicando la directory stessa e ..
indicandone il padre. Ciò ha fornito un modo semplice per attraversare il filesystem, sia per le applicazioni che per il sistema operativo stesso.
Pertanto ogni directory ha un conteggio dei collegamenti di 2 + n dove n è il numero di sottodirectory. I collegamenti sono la voce per quella directory nel suo genitore, la .
voce propria della directory e la ..
voce in ciascuna sottodirectory. Ad esempio, supponiamo che questo sia il contenuto della sottostruttura radicata in /parent
tutte le directory:
/parent
/parent/dir
/parent/dir/sub1
/parent/dir/sub2
/parent/dir/sub3
Poi dir
ha un conteggio dei collegamenti di 5: la dir
voce /parent
, la .
voce /parent/dir
, e le tre ..
voci in ciascuno dei /parent/dir/sub1
, /parent/dir/sub2
e /parent/dir/sub3
. Poiché /parent/dir/sub1
non ha una sottodirectory, il suo conteggio dei collegamenti è 2 (la sub1
voce in /parent/dir
e la .
voce in /parent/dir/sub1
).
Per ridurre al minimo la quantità di case speciali per la directory principale, che non ha un genitore "corretto", la directory principale contiene una ..
voce che punta a se stessa. Anche in questo modo ha un conteggio dei collegamenti pari a 2 più il numero di sottodirectory, essendo 2 /.
e /..
.
I filesystem successivi hanno teso a tenere traccia delle directory principali in memoria e di solito non sono necessarie .
ed ..
esistono come voci effettive; i tipici sistemi unix moderni trattano .
e ..
come valori speciali come parte del codice del filesystem indipendente dal tipo di filesystem. Alcuni filesystem includono ancora .
e ..
voci, o fanno finta di non apparire nulla sul disco.
La maggior parte dei filesystem riporta ancora un conteggio dei collegamenti di 2 + n per le directory indipendentemente dal fatto .
che ..
esistano o voci, ma ci sono eccezioni, ad esempio btrfs non lo fa.