ちょっと真面目にシンボリックリンクを理解する

まあリンクなんですけど、はい。 ハードリンクとシンボリックリンクを対比して少しだけ真面目にリンクについて勉強する機会があったので書きました。

ハードリンク

ファイルの実態と新しい名前を結びつける

シンボリックリンク

ファイルの名前と新しい名前を結びつける

比較考察

見て然りですが、二つの差は新しい名前と結びつける先が実態であるか名前であるかの差です。 この差によってさらに以下の3つの違いが生じます。

  • シンボリックリンクには対応する実態が存在しなくてもよい。

ハードリンクでは当然実態が存在しなければリンクを張ることはできません。ですが、名前と結びつけるシンボリックリンクでは名前と結びつけを行い、実態に対してのアクセスはシンボリックリンクにアクセスがあるごとに行われます。

  • ファイルシステムをまたいでリンクが張れる

ハードリンクでは、1つのファイルシステム上でないとリンクが張れませんでしたが、実態を参照しないシンボリックリンクはファイルシステムをまたぐことができます。

  • ディレクトリにもリンクが張れる

ファイルの実態にリンクを張るハードリンクでは当然実態が異なるディレクトリにリンクが張れませんでしたが、シンボリックリンクでは名前に対してリンクを張るのでファイルなのかディレクトリなのかは区別しません。

以上。まあこんなの理解してなくてもシンボリックリンクを使っていれば何事もうまくいきますよね。