Directory
一個文件夾的連結數不能反映真實狀態?
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 個文件.
和..
文件夾。誰能解釋為什麼?
目錄的連結計數是目錄具有的名稱數(這與正常文件一樣)。
您的
cmd
目錄有兩個名稱:
cmd
在其父目錄中。.
在目錄本身。該
/var/www/html
目錄有九個名稱:
html
在其父目錄中。.
在自身。..
在它的每個(七個)子目錄中。在正常情況下,目錄條目的連結數
.
應該是 2 加上它包含的子目錄數。根目錄也是如此
/
,即使它沒有父目錄,因此連結計數應該是1加上子目錄的數量。它所擁有的是一個
..
目錄,可將您帶回到/
. 這樣就解決了這個謎題;它/..
提供了“額外”連結到/
. 這是唯一的目錄,其..
目錄是指向.
.