ln – ハードリンクやシンボリックリンクを作成するコマンド

コマンドリファレンス

ln コマンドは、既存ファイルに対して新しいリンク(参照)を作成 するコマンドです。
リンクには、同じ inode を指す ハードリンク と、ファイル名の別名を作る シンボリックリンク(ソフトリンク) があります。
ショートカット的な使い方や、設定ファイルの切り替え、複数の場所から同じファイルを参照する場合に使われます。

構文(Syntax)

# ハードリンク作成
ln [オプション] 既存ファイル リンク名

# シンボリックリンク作成
ln -s [オプション] 既存ファイル リンク名

主なオプション一覧

オプション説明使用例
(なし)ハードリンクを作成ln file.txt link.txt
-sシンボリックリンクを作成ln -s /etc/nginx/nginx.conf conf_link
-f既存のリンクを強制的に上書きln -sf new.conf conf_link
-i上書き時に確認を求めるln -si file.txt link.txt
-nシンボリックリンクを上書きする際にリンクをたどらないln -snf file link
-v作成したリンクを表示ln -sv file.txt link.txt
-Tリンク名を必ず通常のファイルとして扱うln -sT file linkname

実行例

ハードリンクを作成

ln original.txt hardlink.txt

出力(確認):

ls -li original.txt hardlink.txt

例:

123456 -rw-r--r-- 2 user user 100 Aug 21 10:00 hardlink.txt
123456 -rw-r--r-- 2 user user 100 Aug 21 10:00 original.txt

(同じ inode 番号を持つ)

シンボリックリンクを作成

ln -s /var/log/syslog syslog_link

出力(確認):

ls -l syslog_link
lrwxrwxrwx 1 user user 14 Aug 21 11:00 syslog_link -> /var/log/syslog

リンクを強制的に上書き

ln -sf new.conf conf_link

相対パスのシンボリックリンクを作成

ln -s ../config/settings.conf settings_link

エラー例(存在しないファイルをリンク)

ln notfound.txt link.txt

出力例:

ln: failed to access 'notfound.txt': No such file or directory

関連コマンド

  • cp : ファイルをコピー(リンクではなく独立したファイル)
  • readlink : シンボリックリンクの参照先を表示
  • stat : inode 番号やリンク数を確認

備考

  • ハードリンク
    • 同じ inode を参照するため、リンク先が削除されても他のリンクからアクセス可能。
    • ディレクトリには通常作成できない(管理が複雑になるため)。
    • 異なるファイルシステム間では作成不可。
  • シンボリックリンク
    • ファイルパスを参照する仕組み。
    • 元ファイルが削除されると「壊れたリンク(broken link)」になる。
    • ディレクトリや他のファイルシステムをまたいでも作成可能。
  • 設定ファイルの切り替えやライブラリ参照先の管理にシンボリックリンクがよく使われます。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント