文件夹的链接数量并不能反映真实的状态?

文件夹的链接数量并不能反映真实的状态?

一个关于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

您可以看到该cmd文件夹​​的链接计数为 2,但实际上它有 4 个链接,其中包括 2 个文件...文件夹。谁能解释为什么?

答案1

目录的链接计数是该目录具有的名称数量(这与常规文件一样)。

您的cmd目录有两个名称:

  1. cmd在其父目录中。
  2. .在目录本身中。

/var/www/html目录有九个名称:

  1. html在其父目录中。
  2. .在自身。
  3. ..在其每个(七个)子目录中。

正常情况下,目录条目的链接计数.应该是 2 加上它包含的子目录的数量。


对于根目录也是如此/,即使它没有父目录,因此应该链接计数为1加上子目录的数量。

什么have 是一个..目录,它带您回到/.这样就解决了这个谜题;它/..提供了指向 的“额外”链接/。这是唯一一个其目录..是指向 的链接的目录.

相关内容