lnコマンド【link command】
lnコマンドとは?

ファイルシステムにおけるリンクとはファイルに付けることができる別名で、ファイルが本来ある場所(パス)とは別の場所に置くことができる。作成できるリンクには「ハードリンク」(hard link)と「シンボリックリンク」(symbolic link)の2種類がある。
ハードリンクは、ファイルの実体に直接結びついた別名である。オペレーティングシステム(OS)内部ではファイル名とデータの実体は切り離して管理されており、ハードリンクを作成すると同一の実体に複数の名前が結びついた状態になる。元のファイル名を削除してもデータは消えず、ハードリンクが残っていれば引き続き参照できる。ただし、異なるファイルシステムをまたぐことはできず、ディレクトリへの作成も原則として制限される。
一方、シンボリックリンクは、対象ファイルのパス情報を記録した特殊なファイルである。実体ではなくパスを参照するため、異なるファイルシステム間やディレクトリに対しても作成できる。一方、元のファイルを削除・移動するとリンク先を見失い、参照できない「壊れたリンク」になる。実用上はこちらが多く使われており、lnコマンドに「-s」オプションを付けて「ln -s 元ファイル リンク名」のように実行する。オプションなしで実行するとハードリンクが作成される。
どちらのリンクも、コピーとは異なり実体の変更がすべての参照に反映される。ハードリンクは同一データを直接共有するため、どの名前から編集しても内容は共通である。シンボリックリンクは参照先を経由してアクセスするため、参照先の変化をそのまま受ける。リンク関係を把握していないと、意図しない削除や上書きにつながる場合もある。
実際の用途としては、深い階層のファイルをホームディレクトリから手軽に参照する場面や、共有ライブラリのバージョン管理などが挙げられる。プログラムが参照するファイル名をリンク名として固定しておき、リンク先を新バージョンに切り替えるだけでソフトウェアの更新が完了するため、システム管理の現場で広く活用される。