読み方 : エルエヌコマンド

lnコマンド【link command】

lnコマンドとは?

LinuxなどのUNIX系OSで、ファイルディレクトリに別名を与え、異なる場所から同じ実体を参照できるようにするコマンドデータを複製せずに複数の名前でアクセスできるため、ストレージの節約と柔軟なファイル管理を両立できる。
lnコマンドのイメージ画像

ファイルシステムにおけるリンクとはファイルに付けることができる別名で、ファイルが本来ある場所(パス)とは別の場所に置くことができる。作成できるリンクには「ハードリンク」(hard link)と「シンボリックリンク」(symbolic link)の2種類がある。

ハードリンクは、ファイルの実体に直接結びついた別名である。オペレーティングシステム(OS)内部ではファイル名データの実体は切り離して管理されており、ハードリンクを作成すると同一の実体に複数の名前が結びついた状態になる。元のファイル名を削除してもデータは消えず、ハードリンクが残っていれば引き続き参照できる。ただし、異なるファイルシステムをまたぐことはできず、ディレクトリへの作成も原則として制限される。

一方、シンボリックリンクは、対象ファイルパス情報を記録した特殊なファイルである。実体ではなくパスを参照するため、異なるファイルシステム間やディレクトリに対しても作成できる。一方、元のファイルを削除・移動するとリンク先を見失い、参照できない「壊れたリンク」になる。実用上はこちらが多く使われており、lnコマンドに「-s」オプションを付けて「ln -s 元ファイル リンク名」のように実行する。オプションなしで実行するとハードリンクが作成される。

どちらのリンクも、コピーとは異なり実体の変更がすべての参照に反映される。ハードリンクは同一データを直接共有するため、どの名前から編集しても内容は共通である。シンボリックリンクは参照先を経由してアクセスするため、参照先の変化をそのまま受ける。リンク関係を把握していないと、意図しない削除や上書きにつながる場合もある。

実際の用途としては、深い階層のファイルホームディレクトリから手軽に参照する場面や、共有ライブラリバージョン管理などが挙げられる。プログラムが参照するファイル名をリンク名として固定しておき、リンク先を新バージョンに切り替えるだけでソフトウェアの更新が完了するため、システム管理の現場で広く活用される。

主なLinuxコマンド

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。