ハードリンクを作成すると、両方の名前のハードリンク数が増えます。

ハードリンクを作成すると、両方の名前のハードリンク数が増えます。
gui@Latitude:~$ cd playground
gui@Latitude:~/playground$ ls -l
total 8
drwxrwxr-x 2 gut gut 4096 set 20 16:18 dir1
-rw-r--r-- 1 gut gut 2903 set 20 14:46 gato
gui@Latitude:~/playground $ ln gato gato-rato
gui@Latitude:~/playground $ ls -l
total 12
drwxrwxr-x 2 gui gui 4096 set 20 16:18 dir1
-rw-r--r-- 2 gui gui 2903 set 20 14:46 gato
-rw-r--r-- 2 gui gui 2903 set 20 14:46 gato-rato
gui@Latitude:~/playground $

明確に助けてください。

drwxrwxr-x 2 gut gut 4096 set 20 16:18 dir1

ベストアンサー1

私の考えでは、あなたの考えが少し間違っていると思います。 gatoとgato-ratoは、異なる(しかしリンクされた)ファイルではなく、2つの名前です。同じファイルについて。これらの名前(より技術的にはディレクトリエントリ)が計算される「リンク」です。

ls -liデフォルトでは、ボリュームのファイルID番号であるinode番号を調べると便利です。私のシステムの楽しみは次のとおりです。

Gordons-MBP:playground gordon$ ls -li
total 8
12931424970 drwxr-xr-x  2 gordon  staff  64 Sep 20 21:38 dir1
12931424987 -rw-r--r--  1 gordon  staff   7 Sep 20 21:39 gato
Gordons-MBP:playground gordon$ ln gato gato-rato
Gordons-MBP:playground gordon$ ls -li
total 16
12931424970 drwxr-xr-x  2 gordon  staff  64 Sep 20 21:38 dir1
12931424987 -rw-r--r--  2 gordon  staff   7 Sep 20 21:39 gato
12931424987 -rw-r--r--  2 gordon  staff   7 Sep 20 21:39 gato-rato

「gato」と「gato-rato」の両方のディレクトリエントリがinode#12931424987に接続されていることを確認できます。この inode には 2 つのディレクトリエントリが関連付けられているため、リンク数は 2 です。

同様に、サブディレクトリへの2番目のリンクもあります。

Gordons-MBP:playground gordon$ ls -lid dir1 dir1/.
12931424970 drwxr-xr-x  2 gordon  staff  64 Sep 20 21:38 dir1
12931424970 drwxr-xr-x  2 gordon  staff  64 Sep 20 21:38 dir1/.

したがって、現在のディレクトリの "dir1"エントリとディレクトリ自体の "."エントリはinode#12931424970への2つのリンクです。

おすすめ記事