【エルエヌ】

ln とは?

最終更新:
💡 同じファイルの別名と、パスへの道しるべを作る

ファイル間のリンクを作るコマンド。通常は同じファイルに別の名前を付けるハードリンクを作り、-sを指定するとパスを参照するシンボリックリンクを作る。二つは仕組みや制約が異なり、単にファイルをコピーする操作ではない。

📌 このページのポイント
パスへのリンクと、同じファイルの別名 シンボリックリンク ハードリンク shortcut 参照先のパスを持つ source.txt 参照先のファイル パスが見つからないと リンクは参照できない ln -s source.txt shortcut source.txt alias.txt 同じファイルの内容 一方の名前を消しても 他方から使える ln source.txt alias.txt
左はパスを参照する別のファイル。右の二つの名前は同じファイルを指し、内容を共有する。
ひよこ ひよこ
lnはWindowsのショートカットと同じ?
ペンギン先生 ペンギン先生
近道というイメージは使えるけれど、同じ形式ではないよ。lnは通常ハードリンクを作り、-sならシンボリックリンクを作る。ハードリンクは同じファイルの別名、シンボリックリンクはパスを持つ別のファイルなんだ。
ひよこ ひよこ
シンボリックリンクはどう作る?
ペンギン先生 ペンギン先生
リンク名がまだない例なら、ln -s /opt/app-v2 /opt/appで、/opt/appから/opt/app-v2を参照するリンクを作れるよ。通常は既存のリンク名を上書きしない。既存パスがディレクトリの場合は動作が変わるので、切り替え時には対象を確認するんだ。
ひよこ ひよこ
参照先を消すとどうなる?
ペンギン先生 ペンギン先生
シンボリックリンクは残っても、そのパスで参照先を見つけられなくなるよ。ハードリンクは同じファイルの別名なので、一方の名前を削除しても他方から使える。片方から内容を変更すると、もう片方でも同じ内容が見えるんだ。
ひよこ ひよこ
ハードリンクはどこにでも作れる?
ペンギン先生 ペンギン先生
異なるファイルシステムをまたげないし、通常はディレクトリには作れないよ。シンボリックリンクならディレクトリや別のファイルシステムのパスを参照できる。使う場面に合わせて選ぶんだ。
ひよこ ひよこ
相対パスはどこを基準にするの?
ペンギン先生 ペンギン先生
シンボリックリンク自身があるディレクトリを基準に参照先を探すよ。コマンドを実行した場所を、ずっと基準にするわけではない。リンクを別の場所に移したり、参照先を移したりすると、どのパスを指すか変わる場合があるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ln」って出てきたら「ファイルの別名や、パスを参照するリンクを作るコマンド」と思えばだいたいOK!
📖 おまけ:英語の意味
「link」 = リンク(つながり)
💬 「link(つなげる)」の略だよ。ファイルに別名を付けてつなげるイメージだね

参考資料

← 用語集にもどる