フォルダへのリンク数が実際の状態を反映していませんか?

フォルダへのリンク数が実際の状態を反映していませんか?

コマンドに関する質問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つあることがわかりますが、実際には2つのファイルと.フォルダ..を含む4つのリンクがあります。誰でも理由を説明できますか?

ベストアンサー1

ディレクトリのリンク数は、ディレクトリが持つ名前の数です(通常のファイルの場合と同じ)。

ディレクトリcmdには2つの名前があります。

  1. cmd親ディレクトリにあります。
  2. .ディレクトリ自体にあります。

この/var/www/htmlディレクトリには9つの名前があります。

  1. html親ディレクトリにあります。
  2. .それ自体。
  3. ..それぞれの(7)サブディレクトリにあります。

通常、ディレクトリエントリのリンク数は、.2に含まれるサブディレクトリの数を加えた値でなければなりません。


/親ディレクトリがなくてもルートディレクトリの場合も同様です。しなければならないリンク数は1さらに、サブディレクトリの数。

する..haveはに戻るディレクトリです/。これはパズルを解決し、へ/..の「追加」リンクを提供します/。これは..、指すリンクがディレクトリである唯一のディレクトリです.

おすすめ記事