Unix

目錄的硬連結數是否與其中的子目錄數相對應?

  • October 12, 2010

使用 顯示目錄時ls -l,它們的連結數(輸出中的第二個欄位)至少為兩個:一個用於目錄名稱,一個用於.

$ mkdir foo
$ ls -l
total 2
drwxr-xr-x  2 user   wheel  512  4 oct 14:02 foo

總是假設 2 以上的連結數對應於此目錄中的子目錄數 (..連結 ) 是否安全?

雖然通常您只能使用指向目錄的符號連結,這不會影響連結計數,但在某些情況下,目錄可以使用硬連結(IIRC OSX 的 TimeMachine 功能使用此類連結),因此可能並不總是得到保證。

您會更安全地使用lsand grep(或者也許find)將掃描傳遞給wc命令以計算實際存在的子目錄的數量,而不是嘗試從目前目錄連結計數中猜測。

您正確地觀察到所有目錄都包含 . 和..,所以如果你從輸出中減去兩個

ls -la | grep '^d' | wc -l

您應該獲得目前工作目錄中的目錄數。

引用自:https://serverfault.com/questions/187265