[[email protected] tmp]# mkdir a
[[email protected] tmp]# ls -ld a
drwxr-xr-x. 2 root root 4096 11月 21 11:38 a
## 建立一個目錄 a , ls -ld 看這個目錄本身的時候 , 第二列為 2 : 代表 硬連結數 , 就是這個 a 目錄有幾個硬連結
## 這裡我們看到是 2 , 一個是 a 本身 , 一個是 a/. ; 我們知道硬連結的 inode 是一樣的 , 下面我們驗證一下
[[email protected] tmp]# ls -id a
399081 a
[[email protected] tmp]# ls -ia a/
399081 . 261147 ..
## 我們可以看到 a 的 inode 為 399081 , a/. 的 inode 也為 399081 ; 是以 ls -ld a 的第二列為 2
## 注意隻針對目錄 , 下面我們在 a 下建立檔案 , 看 2 會不會變為 3
[[email protected] tmp]# touch a/cc
[[email protected] tmp]# ls -ld a
drwxr-xr-x. 2 root root 4096 11月 21 11:54 a
## 我們在 a 下建立了檔案 cc , 但是結果還是 2 , 說明對檔案無效
## 下面我們建立目錄試試
[[email protected] tmp]# ls -ld a
drwxr-xr-x. 3 root root 4096 11月 21 11:55 a
## 第二列變為了 3 ; 那這 3 是怎麼來的呢 ?
[[email protected] tmp]# ls -id a
399081 a
[[email protected] tmp]# ls -ia a/
399081 . 261147 .. 535184 b 400035 cc
[[email protected] tmp]# ls -ia a/b/
535184 . 399081 ..
## a 的 inode 為 399081 , a/. 的 inode 為 399081 , a/b/.. 的 inode 也為 399081
## 可以得出結論: 目錄本身(a)、目錄下的 .(a/.)、目錄下子目錄的 ..(a/b/..) 共同組成了 3 , 因為它們的 inode 都相同
## 其實我們可以發現 a 、a/.、a/b/.. 都代表目錄 a .是以 inode 一樣!
## 如果 a/b/ 目錄下還有 c 甚至更多 , 這個 3 也不會變 , 因為沒法代表 a 目錄了.
[[email protected] tmp]# mkdir a/b/c
[[email protected] tmp]# ls -ld a
drwxr-xr-x. 3 root root 4096 11月 21 11:55 a
## 還是 3 .
## 如果 a/ 目錄下還有 c 甚至更多 , 這個 3 就會增加 , 其實 a/c 的含義不就跟 a/b 一樣嗎 ? 都是 a 的下一級目錄.
[[email protected] tmp]# mkdir a/c
[[email protected] tmp]# ls -ld a
drwxr-xr-x. 4 root root 4096 11月 21 12:07 a
## 成功變成了 4 .
## 好了 , 這是目錄的 . 接下來看看檔案的 .
[[email protected] tmp]# ls -l a.txt
-rw-r--r--. 1 root root 0 11月 21 12:08 a.txt
## 第二列為 1 , 沒什麼說的他本身呗 , 隻有自己一個 inode , 本分區唯一
[[email protected] tmp]# ln -s /var/tmp/a.txt /myshell/la.txt
[[email protected] tmp]# ls -l a.txt
-rw-r--r--. 1 root root 0 11月 21 12:08 a.txt
## 做了一個軟連結 , 沒用的 . 因為我們知道這是指硬連結數 .
[[email protected] tmp]# ln /var/tmp/a.txt /myshell/lla.txt
[[email protected] tmp]# ls -l a.txt
-rw-r--r--. 2 root root 0 11月 21 12:08 a.txt
## 1 變為了 2 , 說明有一個檔案的 inode 跟 a.txt 一樣了 , 也就是說 a.txt 有一個硬連結了 .
### 最後得出結論:ls -l 指令顯示結果中 , 第二列代表 硬連結數 .
如果它是目錄的話 , 代表跟它關聯的有幾個硬連結(例中為 4 , 那麼跟它關聯的有 a 、a/. 、a/b/.. 、a/c/..)
如果它是檔案的話 , 代表跟它關聯的有幾個硬連結(例中為 2 , 那麼跟它關聯的有 a.txt 、lla.txt)