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つのリンクです。