LINK_MAXとサブディレクトリの関係
- LINK_MAX
- 1ファイルあたりの最大リンク数
ハードリンクとは
データとそのデータに付けた名前を繋げるもの
linuxの場合、inodeに名前を付けて繋げること
/ |- test |- test1/ |- test2 drwxr-xr-x 3 root root 4096 10月 7 15:06 . drwxr-xr-x 28 root root 4096 10月 7 15:04 .. drwxr-xr-x 2 root root 4096 10月 7 15:05 test1 -rw-r--r-- 1 root root 0 10月 7 15:06 test2
何故LINKL_MAXがサブディレクトリ数と関係するのか
サブディレクトリの最大個数がLINK_MAX-2個なのはディレクトリ・ファイルなどのデータは1つ以上のハードリンクを持っている。testディレクトリについてlnでリンク数をみると
drwxr-xr-x 3 root root 4096 10月 7 15:06 .
上記より3となっている。これはtestディレクトリと同じデータを見るリンク、
- /からtestへのリンク
- testからtest(.)へのリンク
- test1からtest(test1での..)へのリンク
以上3つのリンクが存在する。
決して、testディレクトリの中にディレクトリ. .. test1の3つのディレクトリがあるからではない。testの指すデータへのリンクが3つあることを表している。
例)LINK_MAXが127の時
testの持てるサブディレクトリ数は
- /からtestへのリンク
- testからtest(.)へのリンク
以上はすでに存在しているので、125個。