【エルエヌ】

ln とは?

💡 ファイルへの近道を作る道しるべ、1つの実体に複数の名前を付ける名人
📌 このページのポイント
ln — シンボリックリンクとハードリンク シンボリックリンク (ln -s) /opt/app リンク /opt/app-v2 実体ファイル 元を消すとリンク切れ ハードリンク (ln) 名前A 名前B 実体 片方消しても残る バージョン切替の活用例 ln -s /opt/app-v2 /opt/app リンク先を変えるだけでバージョン切替 シンボリックリンク ハードリンク ディレクトリOK / 別FS OK ディレクトリNG / 別FS NG 元を消すとリンク切れ どちらを消してもOK
lnのイメージ
ひよこ ひよこ

lnコマンドって、Windowsのショートカットみたいなものを作るの?

ペンギン先生 ペンギン先生

近いけど、もっと強力だよ。lnには「シンボリックリンク」と「ハードリンク」の2種類があるんだ。シンボリックリンクはWindowsのショートカットに似ていて、ファイルの「道しるべ」を作る感じ。ハードリンクは「同じファイルに別の名前を付ける」イメージだね

ひよこ ひよこ

シンボリックリンクはどうやって作るの?

ペンギン先生 ペンギン先生

ln -s 元のファイル リンク名 で作れるよ。たとえば ln -s /opt/app-v2.0 /opt/app とすれば、/opt/app が /opt/app-v2.0 を指すシンボリックリンクになる。バージョンアップ時にリンク先を変えるだけで切り替えられるから、運用でとても重宝するんだ

ひよこ ひよこ

ハードリンクとシンボリックリンクって何が違うの?

ペンギン先生 ペンギン先生

シンボリックリンクは「道しるべ」だから、元のファイルを消すとリンク切れになるよ。一方ハードリンクは「同じ実体に別の名前を付ける」から、片方の名前を消してもファイルは残るんだ。同じ家に玄関が2つあるようなもので、1つ塞いでもまだ入れるよ

ひよこ ひよこ

実際の運用ではどっちを使うことが多いの?

ペンギン先生 ペンギン先生

圧倒的にシンボリックリンクが多いよ。ハードリンクはディレクトリに作れない、異なるファイルシステムをまたげないという制約があるからね。Nginxの設定で `sites-available` から `sites-enabled` にシンボリックリンクを張る運用パターンは有名だね。ちなみにハードリンクが活躍するのはバックアップツールの内部で、rsyncの `--link-dest` オプションは変更のないファイルをハードリンクで参照することでディスク容量を大幅に節約しているんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ln」って出てきたら「ファイルへのリンク(ショートカット)を作るコマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「link」 = リンク(つながり)
💬 「link(つなげる)」の略だよ。ファイルに別名を付けてつなげるイメージだね
← 用語集にもどる