No.026ファイルとフォルダ
ln
エルエヌ・リンク作成
ファイルやディレクトリへの別名参照を作成します。ハードリンクとシンボリックリンクの違いを理解して使い分けることが重要です。
答えよく使う形
注意危険度は中程度です。
$ printf 'hellon' > original.txt
ln original.txt hard.txt
ls -li original.txt hard.txt
12345 -rw-r--r-- 2 user user 6 4月 9 12:00 hard.txt 12345 -rw-r--r-- 2 user user 6 4月 9 12:00 original.txt
$ ln -s original.txt soft.txt
ls -l soft.txt
readlink soft.txt
lrwxrwxrwx 1 user user 12 4月 9 12:00 soft.txt -> original.txt original.txt
$ ln src.txt hard.txt
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
覚える順番の中でLPIC-1・9 駅め / 106
どんなコマンド?
同じ実体へ複数の参照名を持たせたい時、バージョン切り替えや互換用の別名を作りたい時、リリース先を安全に差し替えたい時、ディレクトリ構成を変えずに参照だけ調整したい時に使います。
lnは、既存のファイルへ追加の参照を作るコマンドです。既定ではハードリンクを作成し、-sを付けるとシンボリックリンクを作成します。両者は見た目が似ていますが、指している対象の持ち方が大きく異なります。
ハードリンクは同じ実体へ別の名前を与える方法で、同じファイルシステム上でのみ作成できます。リンク先と元は同じ実体を共有するため、どちらから編集しても内容は同じです。一方、シンボリックリンクは「別のパスを指す小さな参照ファイル」です。対象が移動したり削除されたりすると参照切れを起こすことがありますが、別ファイルシステムやディレクトリにも張れます。
実務では、設定ファイルの切り替え、配布先の互換性維持、バージョン付きディレクトリの切り替え、共有ライブラリの参照整備などで頻繁に使います。ただし、リンクを増やすと見た目の所在と実体の所在がずれるため、調査や削除時にはls -liやreadlinkなどで実体関係を確認する癖が重要です。
書き方とオプション
組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。
$ ln
使用例と実行結果
行を押すとコピーできます。
12345 -rw-r--r-- 2 user user 6 4月 9 12:00 hard.txt 12345 -rw-r--r-- 2 user user 6 4月 9 12:00 original.txt
lrwxrwxrwx 1 user user 12 4月 9 12:00 soft.txt -> original.txt original.txt
まず安全に試す
3分ミッション
手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。
0 / 2
つまずいたとき
ハードリンクを別ファイルシステムへ作ろうとして失敗した
原因ハードリンクは同一ファイルシステム内でしか作成できません。
こうする別ファイルシステムへ参照を張るならシンボリックリンクを使います。
リンクを消したのに実体が消えていない、または逆に実体が見えなくなった
原因ハードリンクとシンボリックリンクの性質を混同しています。
こうするls -liやreadlinkで種別と実体を確認し、どれが実体でどれが参照かを整理します。
終わったときの数(戻り値)
$ echo $?
- 0正常終了。リンクの作成に成功しました。
- >0対象不存在、既存名との衝突、権限不足、別ファイルシステム上へのハードリンク作成などで失敗しました。
気をつけることと入れ方
危険度は中程度です。特に-fを付けて既存のリンク名を置き換える時は、意図しない参照切り替えを起こすことがあります。サービスが参照するファイルの向き先を変える場合は、対象の実体と権限を必ず確認してください。
また、ハードリンクは「削除しても実体がすぐ消えない」ことがあり、シンボリックリンクは「見た目はあるのに実体へ届かない」ことがあります。削除や移行の前に、リンク種別と実体の位置を理解しておく必要があります。
環境による違い
POSIXでlnは標準化されていますが、相対リンク生成の-rやバックアップ制御などはGNU拡張です。最小構成環境では-s以外の便利機能が使えないことがあります。
ハードリンクは同一ファイルシステム内に限定され、通常はディレクトリに対して作成しません。シンボリックリンクはディレクトリにも張れますが、相対パスで作るか絶対パスで作るかで移設しやすさが変わります。
確かめた環境2026-04-09 に確認
よくある質問
ハードリンクとシンボリックリンクの最重要な違いは何ですか。
ハードリンクは同じ実体を共有し、シンボリックリンクは別のパスを指す参照ファイルです。
ディレクトリに対しても使えますか。
通常はシンボリックリンクで扱います。ハードリンクは一般的な運用ではディレクトリへ作成しません。
資格試験では
- LinuC レベル1中心1.02.3 ハードリンクとシンボリックリンクlnは、LinuCレベル1でハードリンクとシンボリックリンクを扱う中核コマンドです。
- LPIC-1中心104.6 ハードリンクとシンボリックリンクの作成・変更lnは、LPIC-1でリンクの作成と理解を問う中心的なコマンドです。
- 共通基礎大事リンクの基礎理解リンクの違いを正しく理解すると、配置、移行、障害調査の精度が上がります。
ln を最後まで読みました。
Linux コマンド辞典に戻る52 / 144