一个关于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
目录有两个名称:
cmd
在其父目录中。.
在目录本身中。
该/var/www/html
目录有九个名称:
html
在其父目录中。.
在自身。..
在其每个(七个)子目录中。
正常情况下,目录条目的链接计数.
应该是 2 加上它包含的子目录的数量。
对于根目录也是如此/
,即使它没有父目录,因此应该链接计数为1加上子目录的数量。
什么做have 是一个..
目录,它带您回到/
.这样就解决了这个谜题;它/..
提供了指向 的“额外”链接/
。这是唯一一个其目录..
是指向 的链接的目录.
。