ln コマンドは、ファイルに対するリンクを作成するコマンドです。Linux では、リンクにはハードリンクとシンボリックリンクがあります。LPIC 的にも実務的にも、この 2 つの違いを理解することが重要です。
書籍
Linux コマンドの基本操作を整理したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
ln コマンドの基本
ln は、デフォルトではハードリンクを作成します。シンボリックリンクを作成する場合は -s を付けます。
# ハードリンク
ln <元ファイル> <リンク名>
# シンボリックリンク
ln -s <元ファイルまたはディレクトリ> <リンク名>ハードリンクとシンボリックリンクの違い
| 項目 | ハードリンク | シンボリックリンク |
| 作成コマンド | ln file link | ln -s file link |
| inode | 元ファイルと同じ inode | リンク用の別 inode |
| 対象 | 通常ファイルが基本 | ファイルにもディレクトリにも使える |
| 別ファイルシステム | 作成できない | 作成できる |
| 元ファイル削除 | リンク側から内容を参照できる | リンク切れになる |
| 見た目 | 通常ファイルのように見える | ls -l で -> が表示される |
ハードリンクの確認
ハードリンクは、別名のファイルを作るように見えますが、実体としては同じ inode を参照します。ls -li で inode 番号を確認すると分かりやすいです。
echo 'hello' > original.txt
ln original.txt hardlink.txt
ls -li original.txt hardlink.txt
cat hardlink.txtハードリンクではリンク数が増えます。どちらか一方を削除しても、もう一方が残っていればデータ本体は残ります。
rm original.txt
cat hardlink.txt
ls -li hardlink.txtシンボリックリンクの確認
シンボリックリンクは、元ファイルへの参照パスを持つリンクです。Windows のショートカットに近い感覚で理解できますが、Linux のファイルシステム上では通常のファイルとして扱われます。
echo 'hello' > original.txt
ln -s original.txt symlink.txt
ls -l original.txt symlink.txt
cat symlink.txt元ファイルを削除すると、シンボリックリンクはリンク切れになります。
rm original.txt
ls -l symlink.txt
cat symlink.txt相対パスのシンボリックリンク
シンボリックリンクでは、相対パスの解釈が重要です。相対パスは、コマンドを実行した場所ではなく、リンクファイルが置かれた場所を基準に解釈されます。
mkdir -p app/current app/shared
echo 'config' > app/shared/config.txt
ln -s ../shared/config.txt app/current/config.txt
ls -l app/current/config.txt
cat app/current/config.txtよく使うオプション
| オプション | 意味 |
| -s | シンボリックリンクを作成する |
| -f | 既存のリンク先を削除して作成する |
| -n | リンク名がディレクトリへのシンボリックリンクの場合でも、リンク自体として扱う |
| -v | 作成したリンクを表示する |
| -r | 相対パスのシンボリックリンクを作成する |
実務でよくある使い方
実務では、ハードリンクよりシンボリックリンクの方を使う場面が多いです。設定ファイル、バージョン切り替え、公開ディレクトリの向き先変更などで使われます。
# バージョンディレクトリを current に向ける例
ln -sfn /opt/app/releases/20260608 /opt/app/current
ls -l /opt/app/current
# 設定ファイルへのリンクを作る例
ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/example.confLPIC で押さえるポイント
lnだけならハードリンク、ln -sならシンボリックリンク。- ハードリンクは同じ inode を参照する。
- ハードリンクは別ファイルシステムをまたげない。
- シンボリックリンクは元ファイルが消えるとリンク切れになる。
ls -liで inode、ls -lでシンボリックリンクの向き先を確認できる。
まとめ
ln コマンドで重要なのは、ハードリンクとシンボリックリンクの違いです。普段の運用ではシンボリックリンクを使うことが多いですが、LPIC では inode、リンク数、ファイルシステムをまたげるか、元ファイル削除時の挙動まで理解しておく必要があります。

