Mac OS Xのボリュームディレクトリ

Mac OS Xのボリュームディレクトリ

Mac OS X を使い始めたばかりです。ルートディレクトリの下に/、 という名前のフォルダがありますVolumes/

ディレクトリ の下に移動するとVolumes/、 というディレクトリがありますMacintosh HD/。 ディレクトリ の下に移動するとMacintosh HD/、ルートに戻り、Volumes/再び ディレクトリ の下に移動できます。 これを数回繰り返して、pwd を使用して現在のディレクトリを確認すると、 というディレクトリにいることがわかります/Volumes/Macintosh/Volumes/Macintosh/Volumes/Macintosh

この背後にある論理を理解できません。誰か説明してくれませんか?

答え1

まず、/Volumes/ディレクトリとはマウントされたすべてのボリュームMac OS X システムでは、当然のことながら表示されます。この動作が発生する理由は、システム上の (root)Macintosh/へのシンボリック リンクにすぎないためです。これは、ボリュームへの (root) アクセスに加えて、そのボリュームへの名前付きアクセスも保持するよう/に行われます。/Volumes/

たとえば、システムのターミナルにアクセスし、次のようcd /Volumesに入力するとls -la、次のような表示が出ることがあります。

drwxrwxrwt@  7 root  admin   238 Sep 13 23:55 .
drwxr-xr-x  29 root  wheel  1054 Sep 13 01:43 ..
lrwxr-xr-x   1 root  admin     1 Sep 13 16:42 Macintosh -> /

シンボリック リンクは基本的に Finder のエイリアスのようなものですが、ファイル システム レベルでは、シンボリック リンクは「エイリアス」そのものです。

なぜこのように動作するのかという/Volumes/Macintosh/Volumes/Macintosh/Volumes/Macintoshと、pwdファイル システムがパスを解釈しているからです。確かに奇妙でわかりにくいかもしれませんが、混乱しないでください。/Volumes/その下でマウントされているボリュームのうち、このように動作するのはシステムのルート ( /) ボリュームだけです。他のボリュームをマウントすると、それらは に表示され/Volumes/、実際にマウントされたボリュームでありシンボリック リンクではないため、このようにループすることはありません。

さて、ネストされたシンボリックリンク/ディレクトリの動作の「理由」については、答えるのが簡単な質問ではありません。しかし、基本的にすべてのLinux/Unixシステムはそのように動作します。そしてUnix & Linux Stack Exchangeのこの質問と回答のスレッドシンボリック リンクによってネストされたディレクトリが存在する理由について、非常に詳しく説明しています。

関連情報