シンボリックリンク

シンボリックリンク

シンボリックリンクはハードリンクと同様にファイルの実体に新しい名前を付ける仕組みです。

シンボリックリンクを作成すると、ファイルシステム上にはリンク情報が格納された0バイトのファイルが作成されます。
その0バイトのファイルを通して、通常のファイルと同じように扱ってファイルの実体を編集することができます。

では、ハードリンクとは何が違うのでしょう。

ハードリンクはファイルの名前と実体を関連付ける仕組みです。
そしてシンボリックリンクは、名前に名前を関連付けます。

シンボリックリンクはWindowsでのショートカットに似ています。
例えば、デスクトップにインターネットエクスプローラーのショットカットを置いておく方は多いと思いますが、インターネットエクスプローラーの実体はデスクトップにはなく、通常「C:\Program Files\Internet Explorer\iexplore.exe」などに保存されています。
このように、本来の位置にファイルを残しつつそれとは別の場所に置いたり別名を付けてアクセスする手段がWindowsで言うショートカットです。
ただし、ショートカットはリンク先のファイルを実体と同じようには扱えないため、シンボリックリンクとは実装や機能の面では大きく異なります。


シンボリックリンクの主な利用方法は、ファイルやディレクトリに別名をつけることです。
ディレクトリに別名をつける場合の活用例としては下記のようなものがあります。

Linuxと言ってもディストリビューションは様々に存在しますし、歴史も古く、幾度となくバージョンアップが繰り返されています。
そのため、同じLinuxでもディストリビューションやバージョンごとに様々な違いが存在しています。
例えば、ログファイルは「/var/log」ディレクトリに置くのが一般的ですが、中には「/var/adm」ディレクトリに置く場合もあります。
そのような環境で開発されたプログラムは、ログファイルが「/var/adm」ディレクトリに作成されると仮定していることもあり、「/var/log」ディレクトリにログファイルを作成している環境では、うまく動作できません。

そこでシンボリックリンクが役に立ちます。
「/var/adm」ディレクトリ以下へのアクセスを「/var/log」ディレクトリへのアクセスだと関連付けさえすれば、プログラムはどちらの環境でも問題なく動作します。

タグ