各ファイルは実際には少なくとも2つの名前(したがって2つのハードリンク)を持つことができますか?

各ファイルは実際には少なくとも2つの名前(したがって2つのハードリンク)を持つことができますか?

このページはインデックスノードに関するものです。特にファイルシステムの表面的な概念を理解するのに役立ちます。同じページで、作成者は、すべてのファイルまたはディレクトリに少なくとも2つの名前(およびハードリンク)があることを証明する次のコードスニペットを挿入しました。

/tmp/junk$ ls -id ..
327681 ..
/tmp/junk$ cd ..
/tmp$ ls -id .
327681 .

/tmp3つのハードリンクがあることがわかります。

  1. おそらくファイル名 "tmp"のinodeは
  2. 「..」という名前の同じインデックスノード
  3. 「.」という名前の同じ索引ノード

/tmp私の質問:サブディレクトリが与えられたら、ディレクトリの「ジャンク」ファイルも3つの名前(およびハードリンク)を持つことができますか?たとえば、/tmp/junk/paper_balls

私の仮説:「ジャンク」ファイルが親ファイルになると、そのファイルを使用できますが、..比較的呼び出すことができます。つまり、現在の作業ディレクトリ(入力元..)がディレクトリパス内になければなりません/tmp/。私の質問に対する答えは、おそらくあまりにも進化しているようです。

答え1

初期ハードリンクの数は1です。文書そして2目次(最初のリンクは親フォルダの名前で、2番目のリンクはハードリンクです.。)ディレクトリ内にサブディレクトリが作成されるたびに、ディレクトリ内のリンク数は..各サブディレクトリ内で1ずつ増えます。

この数はを使用して簡単に表示できますls -l。これが2番目の値です。視聴する:

~/x$ ls -la
total 16
drwxr-xr-x  2 tomasz tomasz 4096 Sep 24 00:08 .
drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 ..
-rw-r--r--  1 tomasz tomasz   19 Sep 23 18:45 1
-rw-r--r--  1 tomasz tomasz   19 Sep 23 18:45 2
~/x$ mkdir d
~/x$ ls -la
total 20
drwxr-xr-x  3 tomasz tomasz 4096 Sep 24 00:11 .
drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 ..
-rw-r--r--  1 tomasz tomasz   19 Sep 23 18:45 1
-rw-r--r--  1 tomasz tomasz   19 Sep 23 18:45 2
drwxr-xr-x  2 tomasz tomasz 4096 Sep 24 00:11 d
~/x$ mkdir d/dd
~/x$ ls -la
total 20
drwxr-xr-x  3 tomasz tomasz 4096 Sep 24 00:11 .
drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 ..
-rw-r--r--  1 tomasz tomasz   19 Sep 23 18:45 1
-rw-r--r--  1 tomasz tomasz   19 Sep 23 18:45 2
drwxr-xr-x  3 tomasz tomasz 4096 Sep 24 00:11 d

その中に生成された後、2番目の値はd2から3に増加します。d/dd

より広い視点については、以下のmosvyのコメントをご覧ください。

関連情報