Historicamente , o primeiro sistema de arquivos Unix criou duas entradas em cada diretório: .
apontando para o próprio diretório e ..
apontando para seu pai. Isso proporcionou uma maneira fácil de percorrer o sistema de arquivos, tanto para aplicativos quanto para o próprio sistema operacional.
Assim, cada diretório tem uma contagem de links de 2 + n, em que n é o número de subdiretórios. Os links são a entrada para esse diretório em seu pai, a .
entrada do próprio diretório e a ..
entrada em cada subdiretório. Por exemplo, suponha que este seja o conteúdo da subárvore com raiz em /parent
todos os diretórios:
/parent
/parent/dir
/parent/dir/sub1
/parent/dir/sub2
/parent/dir/sub3
Então dir
tem uma contagem da ligação de 5: a dir
entrada no /parent
, a .
entrada no /parent/dir
, e as três ..
entradas em cada um /parent/dir/sub1
, /parent/dir/sub2
e /parent/dir/sub3
. Como /parent/dir/sub1
não possui subdiretório, sua contagem de links é 2 (a sub1
entrada /parent/dir
e a .
entrada /parent/dir/sub1
).
Para minimizar a quantidade de maiúsculas e minúsculas para o diretório raiz, que não possui um pai "adequado", o diretório raiz contém uma ..
entrada apontando para si mesma. Dessa forma, também possui uma contagem de links de 2 mais o número de subdiretórios, sendo 2 /.
e /..
.
Os sistemas de arquivos posteriores tendem a acompanhar os diretórios-pai na memória e geralmente não precisam .
e ..
existem como entradas reais; sistemas unix modernos típicos tratam .
e ..
como valores especiais como parte do código do sistema de arquivos independente do tipo de sistema de arquivos. Alguns sistemas de arquivos ainda incluir .
e ..
entradas, ou fingir mesmo que não aparece nada no disco.
A maioria dos sistemas de arquivos ainda relatam uma contagem da ligação de 2 + n para diretórios independentemente de .
e ..
existem entradas, mas há exceções, por exemplo, o Btrfs não fazer isso.