La cantidad de enlaces para una carpeta no refleja el estado real?

Una pregunta n00b para el command ls .

 root@cqcloud script]# ls /var/www/html -la total 36 drwxr-xr-x 9 root root 4096 Aug 31 01:12 . drwxr-xr-x 7 root root 4096 Aug 31 01:10 .. drwxr-xr-x 2 root root 4096 Aug 26 04:07 cmd drwxr-xr-x 5 root root 4096 Jul 3 10:07 cn.fnmili.com drwxr-xr-x 7 root root 4096 Aug 30 11:42 internal drwxr-xr-x 3 root root 4096 Jul 25 02:03 node drwxr-xr-x 4 root root 4096 Jul 11 01:26 sandbox drwxr-xr-x 13 root root 4096 Aug 26 03:45 tpshop drwxr-xr-x 2 root root 4096 Aug 31 01:12 trash [root@cqcloud script]# ls /var/www/html/cmd -la total 16 drwxr-xr-x 2 root root 4096 Aug 26 04:07 . drwxr-xr-x 9 root root 4096 Aug 31 01:12 .. -rw-r--r-- 1 root root 52 Aug 26 04:07 .htaccess -rw-r--r-- 1 root root 73 Aug 26 04:02 df.php 

Puede ver que la carpeta cmd tiene un número de enlaces de 2, pero en realidad tiene 4 enlaces, incluidos 2 files,. y .. carpeta. ¿Alguien puede explicar por qué?

El número de enlaces para un directory es la cantidad de nombres que ese directory tiene (esto funciona igual que para los files normales).

Su directory cmd tiene dos nombres:

  1. cmd en su directory principal.
  2. . en el directory en sí.

El directory /var/www/html tiene nueve nombres:

  1. html en su directory principal.
  2. . en si mismo.
  3. .. en cada uno de sus (siete) subdirectorys.

En circunstancias normales, el recuento de enlaces para un directory . la input debe ser 2 más la cantidad de subdirectorys que contiene.


Esto también es cierto para el directory raíz / , a pesar de que no tiene un directory principal y, por lo tanto, debe tener un recuento de enlaces de 1 más el número de subdirectorys.

Lo que tiene es un directory .. que lo lleva de vuelta a / . Entonces eso resuelve ese enigma; es /.. que proporciona el enlace "extra" a / . Este es el único directory cuyo .. directory es un enlace de return a . .