多くのOSではファイルやディレクトリに別名を付与し、異なった名前で同一のファイルにアクセスする仕組みが備わっております。
Linuxの場合これがハードリンクとシンボリックリンクに当たるのですが、本記事ではシンボリックリンクに焦点を当て、作成から確認・変更・削除方法まで簡潔に解説していきたいと思います。

目次
シンボリックリンクとは?ハードリンクとの違い

シンボリックリンクの使い方の前にまずは、シンボリックリンクの仕組みとハードリンクとの違いをしっかり押さえておきましょう。
”シンボリックリンク”とは、リンク元(本体)の場所を指し示す別のファイルを作成して、そこから本体を参照できるようにする仕組みです。
と言っても、いまいちピンと来ないかと思いますので、以下にシンボリックリンクの仕組みを図で表現したものを掲載しておきます。

重要なのはシンボリックリンクはあくまでリンク元の置き場を見にいくだけという点です。
この仕組みによりinodeに依存していないため、シンボリックリンクを残したままリンク元のファイルを削除するなんてこともできます。
inodeとはファイルの属性情報が格納されたもので、Linuxでファイルを作成すると自動的に重複しない番号が割り当てられる。
一方、ハードリンクの仕組みを表したものが以下の図なのですが両者実体を指し示していることがお分かりいただけるかと思います。

名前とファイルの配置場所が異なっていようが実際には同じものを見ているイメージです。
ハードリンクでは元のファイルとリンクとして作成したファイルの区別がつけられません。
そのため、ハードリンクの場合はいずれのハードリンクファイルに変更を加えても同一の実体に対して変更を加えることになります。
シンボリックリンクはリンク元の置き場を参照するだけの仕組み。一方のハードリンクはファイルの実体を指し示す。
シンボリックリンクの使い方

シンボリックリンクとハードリンクの違いを押さえたところで、本題であるシンボリックリンクの扱いについて解説していきたいと思います。
シンボリックリンクの作成方法
Linuxではlnコマンドを実行することでリンクを作成することができます。(シンボリックリンクを作成するには「-s」オプションを指定)
ln -s [既存のPATH名] [別名のPATH名]
※ちなみに「-s」オプションを付けないとハードリンクが作成されます。
シンボリックリンクの確認方法
作成したシンボリックリンクは「ls -l」コマンドで確認することができます。(「->」と表示されていればシンボリックリンクです。)
シンボリックリンクの変更方法
シンボリックリンクのリンク先を変更させるには、以下のようにlnコマンドに「-nfs」オプションを付与して実行します。
ln -nfs [リンク元のPATH] [シンボリックリンクのPATH]
シンボリックリンクの削除方法
シンボリックリンクを削除するには「unlink」コマンドを実行します。(※rmコマンドでも可能ですがミスった際に大事に至る可能性があるのでunlinkコマンドを推奨)
unlink [シンボリックリンクのPATH]
なお、ディレクトリのシンボリックリンクを削除する際、末尾に「/」が入っているとエラーとなってしまうので注意が必要です。
シンボリックリンク【まとめ】

シンボリックリンクの仕組みと基本的な使い方について理解できたでしょうか?
Linuxの学習は全てに言えることですが、実際にコマンドを打ち込み実行結果を確認することでスキルが身についていきますので是非ご自身の環境でコマンドを叩いてみてください。

手持ちのMacにLinuxの環境を構築する方法は上の記事で触れていますので、学習環境が整っていない方は参考にしていただけると嬉しいです。
本記事がシンボリックリンクの学習に少しでもお役に立てたのなら幸いです。ではっ!!!

