【2026年8月最新】Linuxのlnコマンドとは?ハードリンク・シンボリックリンクの作り方を解説
「lnコマンドって何?」「ハードリンクとシンボリックリンクって同じじゃないの?」——Linuxサーバーの操作を学び始めた方や、開発会社の作業報告書で見慣れないコマンド名に戸惑った経営者の方から、こうした質問をよく受けます。
lnコマンドは、Linux環境で1つのファイルに対して、別の場所からもアクセスできる「リンク(別名の入口)」を作成するためのコマンドです。WindowsでいうところのショートカットやMacのエイリアスに近い機能ですが、仕組みには大きな違いがあり、理解せずに使うと思わぬデータ消失につながることもあります。
この記事では、lnコマンドの基本、ハードリンクとシンボリックリンクの違い、主要オプション、よくあるトラブルまでを網羅的に解説します。さらに後半では、「コマンドを覚えて自分で操作する」ことの次に来ている、AIにサーバー操作を任せるという選択肢について、AI鬼管理を運営する株式会社GENAIの実例を交えて紹介します。
この記事を読み終える頃には、次のことが明確になっています。
01 BASICS lnコマンドとは — 基本を理解する なぜファイルの「リンク」が必要になるのか
lnコマンドは、Linux(およびmacOSなどUnix系OS)で使われる、既存のファイルに対して別のアクセス経路(リンク)を作成するコマンドです。ファイルをコピーするのとは異なり、リンクは「同じ実体を指す、別の入口」を作る点が特徴です。
📚 用語解説
ln(link の略):ファイルやディレクトリへのリンク(別名の参照経路)を作成するLinuxコマンド。オプションを付けずに実行すると「ハードリンク」、-sオプションを付けると「シンボリックリンク」が作成されます。
1-1. なぜコピーではなく「リンク」を使うのか
同じファイルを複数の場所から使いたい場合、単純に考えれば「コピーすればいい」と思うかもしれません。しかし、コピーには「片方を更新しても、もう片方には反映されない」という欠点があります。設定ファイルやライブラリのように、複数の場所から同じ内容を常に参照したい場合、コピーではなくリンクを使うことで、1箇所を更新するだけで、リンク先すべてに変更が反映されるという利点が得られます。
| 方法 | 実体 | 片方を更新した場合 | 主な用途 |
|---|---|---|---|
| コピー(cp) | 別々のファイルとして複製される | もう片方には反映されない | 独立した控えを残したい場合 |
| リンク(ln) | 同じ実体、または実体への参照を共有 | 基本的にリンク先にも反映される | 常に最新の内容を共有したい場合 |
Windowsのショートカットは「元ファイルへの参照情報」を持つ別ファイルという点でシンボリックリンクに近い概念です。ただし、Linuxのリンクにはさらに「ハードリンク」という、Windows/Macにはあまり馴染みのない仕組みも存在します。次の章で詳しく見ていきましょう。
1-2. lnコマンドが使われる代表的な場面
lnコマンドは、サーバーの日常運用において意外なほど頻繁に登場します。代表的なのは、アプリケーションのバージョンアップ時に、旧バージョンと新バージョンを共存させつつ「現在使うバージョン」だけをリンクで切り替える運用です。また、複数の環境(開発・検証・本番)で共通の設定ファイルを参照させたい場合にも活用されます。
1-3. ファイル・ディレクトリ・シンボリックリンクの関係を整理する
Linuxのファイルシステムを理解するうえで重要なのは、「ファイル名」と「ファイルの実体(データ)」が別々に管理されているという考え方です。ファイル名は、実体を指し示すための「ラベル」の一つに過ぎません。この前提を押さえておくと、次の章で説明するハードリンクの仕組み(同じ実体に複数の名前を紐づけられる)が、直感的に理解しやすくなります。
02 TYPES OF LINKS ハードリンクとシンボリックリンクの違い 仕組みの違いを理解しないと事故につながる
lnコマンドで作成できるリンクには、「ハードリンク」と「シンボリックリンク(ソフトリンク)」の2種類があります。見た目は似ていますが、内部の仕組みは大きく異なります。
📚 用語解説
inode(アイノード):Linuxのファイルシステムにおいて、ファイルの実体(データの保存場所・所有者・パーミッションなどの情報)を管理する識別番号。ファイル名はこのinodeへの「ラベル」に過ぎず、1つのinodeに複数のファイル名(ハードリンク)を紐づけることができます。
2-1. ハードリンク:同じinodeを共有する
ハードリンクは、元のファイルと全く同じinode(実体)を指す、もう1つの名前です。オプションなしでlnコマンドを実行すると、このハードリンクが作成されます。
ln 元ファイル名 リンク名
# 例:original.txtへのハードリンクcopy.txtを作成
ln original.txt copy.txt
ハードリンクの最大の特徴は、「元のファイルを削除しても、ハードリンクからは引き続きアクセスできる」という点です。これは、ファイルの実体(データ)が、名前とは独立してinodeという単位で管理されているためです。実体は、そのファイルを指すハードリンクが1つも残らなくなった時点で、初めて削除されます。
2-2. シンボリックリンク:パス(住所)を記録した別ファイル
シンボリックリンク(symbolic link、通称シムリンク)は、「このパスのファイルを見に行ってください」という参照情報だけを持つ、別ファイルです。Windowsのショートカットに近いイメージです。作成には-sオプションを使います。
ln -s 元ファイル名 リンク名
# 例:original.txtへのシンボリックリンクlink.txtを作成
ln -s original.txt link.txt
シンボリックリンクは実体そのものではなく「住所(パス)」を記録しているだけのため、元のファイルを削除・移動すると、シンボリックリンク側は参照先を見失い、アクセスできなくなります。この状態を「リンク切れ(デッドリンク)」と呼びます。
📚 用語解説
リンク切れ(デッドリンク):シンボリックリンクが参照している元のファイルが削除・移動され、リンク先が存在しなくなった状態。この状態のリンクにアクセスしようとすると「そのようなファイルやディレクトリはありません」といったエラーになります。
| 項目 | ハードリンク | シンボリックリンク |
|---|---|---|
| 実体 | 元ファイルと同じinode(同一の実体) | 元ファイルへのパス情報を持つ別ファイル |
| ディレクトリへの作成 | 不可(OSの標準機能では) | 可能 |
| ファイルシステムをまたぐ作成 | 不可 | 可能 |
| 元ファイル削除後の挙動 | 影響なくアクセス可能 | リンク切れになる |
| 見た目での区別 | ファイルとして通常通り表示 | リンク先を示す矢印表示等がされることが多い |
実務では、ディレクトリにもリンクを作成でき、挙動が直感的で分かりやすいシンボリックリンクが使われる頻度が高い傾向にあります。ハードリンクは「同一ファイルシステム内で、確実に実体を共有したい」という明確な理由がある場合に使うのがおすすめです。
03 HOW TO USE lnコマンドの使い方・主要オプション コピーしてすぐ使えるコマンド例つき
| オプション | 意味 | 使用例 |
|---|---|---|
| -s | シンボリックリンクを作成する | ln -s original.txt link.txt |
| -i | リンク名が既存ファイルと重複する場合、上書き前に確認する | ln -i original.txt copy.txt |
| -f | 確認なしで強制的に上書きする | ln -f original.txt copy.txt |
| -v | 実行内容を詳細表示する(verbose) | ln -sv original.txt link.txt |
| -n | リンク名が既存のシンボリックリンク(ディレクトリ参照)でも、その中に作らずリンク自体を上書き対象にする | ln -sfn 新しい参照先 既存リンク名 |
3-1. 基本構文の確認
lnコマンドの基本構文はln [オプション] 元ファイル リンク名です。オプションを付けなければハードリンク、-sを付ければシンボリックリンクが作成されます。
3-2. 上書き確認は必ず意識する
既に同名のファイルが存在する場所にリンクを作成しようとすると、既存ファイルが上書きされてしまうことがあります。特に本番サーバーでの作業では、-iオプションで上書き前の確認を必ず有効にする運用にしておくと、うっかりミスによるファイル消失を防げます。
lnコマンドに限らず、削除・上書きを伴うLinuxコマンドを実行する前には、「このコマンドは何を、どこに、どういう条件で実行するのか」を一度声に出して確認する習慣が事故防止につながります。特に-fオプション(強制上書き)は取り扱いに注意が必要です。
3-3. 複数ファイルを一括でリンクする
lnコマンドは、複数のファイルを1つのディレクトリに対して一括でリンクすることも可能です。この場合、リンク名の指定を省略し、リンク先としてディレクトリを指定します。元のファイル名がそのままリンク名として使われるため、大量のファイルを効率よくリンクしたい場合に便利です。
ln -s /path/to/files/*.conf /path/to/linkdir/
# files配下の全.confファイルへのシンボリックリンクが
# linkdir配下に一括作成される
04 USE CASES 実務でよくある使い方のパターン lnコマンドが実際に使われる典型シーン
4-1. 設定ファイルのバージョン切り替え
複数バージョンの設定ファイルを用意しておき、シンボリックリンクの向き先を切り替えるだけで、使用する設定を瞬時に切り替えるという運用がよく使われます。ファイルの中身を書き換えるより、リンクの向き先を変更するだけの方が、切り戻し(ロールバック)も容易です。
# config.confが現在の設定を指すシンボリックリンクとして運用
ln -sf config_v2.conf config.conf
# 問題が起きたら旧バージョンに即座に切り戻せる
ln -sf config_v1.conf config.conf
4-2. ディレクトリ構成の簡略化
深い階層にあるディレクトリに、浅い階層からシンボリックリンクを張ることで、日常的な操作の手間を減らすという使い方もあります。例えば、頻繁にアクセスするログディレクトリへのショートカット的なリンクをホームディレクトリ直下に作成しておく、といった運用です。
深い階層
リンクを作成
ワンステップで到達
4-3. 複数バージョンのライブラリを共存させる
開発環境では、複数バージョンのライブラリやツールを共存させつつ、シンボリックリンクで「現在使うバージョン」を指定するという運用も一般的です。バージョンを切り替えたい場合、リンクの向き先を変更するだけで済むため、ファイルの入れ替え作業が不要になります。
05 TROUBLESHOOTING よくあるトラブルと確認方法 事故を未然に防ぐためのチェックポイント
リンクが正しく機能しているかを確認するには、ls -lコマンドが便利です。シンボリックリンクの場合、ファイル一覧にリンク名 -> 参照先パスという形式で表示され、リンク先が存在しない場合は多くの端末で色分け表示(赤字等)されるため、視覚的にも異常を発見しやすくなっています。
ls -l
# lrwxrwxrwx 1 user user 12 Aug 12 10:00 link.txt -> original.txt
強制上書きオプションは、確認なしに既存ファイルを上書きしてしまいます。本番サーバーでの作業では、まず-iオプションで確認しながら実行し、意図通りであることを確かめてから-fを使う、という2段階の慎重さが推奨されます。
5-1. ハードリンクの数を確認する方法
あるファイルに、いくつのハードリンクが存在するかはls -lコマンドの出力に含まれるリンク数(ファイル情報の2列目に表示される数値)で確認できます。この数値が2以上であれば、そのファイルには他にもハードリンクが存在することを意味します。ファイルを削除する前にこの数値を確認しておくと、「削除したつもりが、実は別名でまだアクセス可能だった」という誤解を防げます。
ls -l original.txt
# -rw-r--r-- 2 user user 1024 Aug 12 10:00 original.txt
# ^ この数値がハードリンクの数
5-2. パーミッションの引き継ぎに関する注意点
ハードリンクは同じinodeを共有するため、ファイルの権限(パーミッション)や所有者情報も完全に共有されます。一方シンボリックリンク自体は独自の簡易的な権限情報を持ちますが、実際にアクセスする際はリンク先の実体が持つ権限が適用される点に注意が必要です。「リンクだけ権限を変更したつもりが、実体の権限が変わっていた」という混同が起きやすいポイントです。
📚 用語解説
パーミッション:Linuxにおいて、ファイルやディレクトリに対する「誰が」「読み取り・書き込み・実行のどれを」行えるかを定めたアクセス権限の設定。ハードリンクは実体を共有するため、パーミッションもリンク間で共通です。
06 BEYOND COMMANDS 【独自】「コマンドを覚える」から「AIに操作させる」時代へ lnコマンドの理解は今も重要。ただし選択肢はもう1つ増えている
ここまで、lnコマンドの使い方を詳しく解説してきました。サーバーを直接運用するエンジニアにとって、この知識は今も欠かせません。一方で、「サーバー管理が必要だが、コマンドを一つひとつ覚えるのは現実的でない」という経営者・管理職にとっては、もう1つの選択肢が現実的になっています。それが、AIコーディングエージェントにサーバー操作を任せる方法です。
📚 用語解説
AIコーディングエージェント:人間が「設定ファイルを最新版に切り替えて」のように日本語で伝えるだけで、AIが必要なLinuxコマンド(lnコマンドを含む)を判断し、実行してくれるAI。Anthropic社の「Claude Code」などが代表例で、コマンドの構文や引数を覚えている必要がありません。
6-1. 【GENAI独自データ】サーバー・環境操作をClaude Codeに任せている実例
弊社(株式会社GENAI)では、AIコーディングエージェント「Claude Code」をMax 20xプラン(月額$200・約30,000円)で契約し、WordPressサイトの設定ファイル切り替え、開発環境のディレクトリ整理、スクリプトの配置調整といった、従来lnコマンドを含む複数のLinuxコマンドを人力で組み合わせて行っていた作業を、日本語の指示だけで完結させています。
| 作業内容 | 従来(自分でコマンドを打つ) | AIエージェント(Claude Code) |
|---|---|---|
| 設定ファイルの切り替え | lnコマンドの構文を正確に覚える必要 | 「設定を最新版に切り替えて」で完了 |
| リンク切れの調査 | ls -l等で目視確認 | AIが自動で検出・報告 |
| ミス時のリスク | 誤ったオプションで事故の可能性 | AIが実行前に影響範囲を説明 |
| 必要な知識 | Linuxコマンドの体系的な理解 | 日本語で状況を説明できれば十分 |
AIエージェントがコマンドを実行した後も、想定通りの結果になっているかは必ず人間が確認することが重要です。特に本番サーバーに影響する操作は、「実行前にどう変わるかを説明してもらう」ステップを挟むと安全に運用できます。
6-2. 「仕組みを理解する」ことの価値は変わらない
AIエージェントに操作を任せられるようになったとしても、この記事で解説したハードリンクとシンボリックリンクの違いといった基礎知識が不要になるわけではありません。AIが提示した実行内容が妥当かどうかを判断するための「最低限の土台」として、こうした知識は引き続き役立ちます。「なぜAIはシンボリックリンクを選んだのか」を理解できれば、より的確な指示や確認ができるようになります。
特にサーバーに変更を加える操作は、後から取り返しがつきにくいケースもあります。AIに任せる場合でも、「今何が行われようとしているか」を大まかにでも理解できる状態にしておくことが、安全に活用するための前提条件だと弊社では考えています。
07 GETTING STARTED 【独自】非エンジニアの経営者がAIでサーバー管理を任せる3ステップ ターミナル操作の知識がなくても始められる
「サーバー管理が必要だが、Linuxコマンドを覚える時間がない」という経営者・管理職の方に向けて、AIエージェントを使ってサーバー関連の作業を進めるまでの3ステップを紹介します。
やりたいことを
言葉で伝える
AIが実行前に
影響範囲を説明
承認後に実行、
結果を確認
7-1. ステップ1:状況と目的を伝える
「サーバーのこのフォルダを、別の場所からも参照できるようにしたい」というように、実現したいことをそのまま伝えます。ハードリンクかシンボリックリンクかといった技術的な判断は、AIエージェント側が状況に応じて提案してくれます。
7-2. ステップ2:実行前の説明を必ず確認する
特にサーバーに変更を加える操作では、AIが実行する前に「何を、どう変更するか」を説明させ、それを確認してから実行を許可する、という手順を踏むことが安全です。この記事で紹介したような、上書きや削除を伴う操作は特に注意が必要です。
7-3. ステップ3:結果を確認し、必要なら元に戻す
実行後は、意図した通りに変更されているかを確認します。シンボリックリンクの向き先を変更するような作業であれば、万が一問題が起きても、リンクの向き先を元に戻すだけで容易に切り戻せることが多く、この「戻しやすさ」もAIに任せる際の安心材料になります。
08 CONCLUSION まとめ ── リンクの仕組みの理解と、AIに任せる選択肢 目的に応じて、理解を深める道と任せる道を使い分ける
この記事では、lnコマンドの基本、ハードリンクとシンボリックリンクの違い、主要オプション、実務での使い方、よくあるトラブル、そしてAIにサーバー操作を任せる時代の考え方までを整理しました。最後にポイントを振り返ります。
lnコマンドとリンクの仕組みを理解することは、サーバーを直接運用するエンジニアにとって今も欠かせない基礎知識です。一方で、「結果だけ早く欲しい」という経営者・管理職の方には、AIエージェントに任せるという選択肢がすでに現実的な水準に達しています。両方の道を知ったうえで、自分の立場に合う方を選んでいただければと思います。
リンクという仕組みは、地味に見えて、サーバー運用の安定性や作業効率を大きく左右する基礎技術です。仕組みを理解して自分で扱えるようになることも、AIに任せて結果を受け取ることも、どちらも正しい選択です。自社の体制と目的に合わせて、無理のない形で取り入れていただければと思います。
この記事で紹介した内容を出発点に、まずは自社のサーバー・環境で実際にどんな運用がされているかを確認してみることをおすすめします。仕組みを知ったうえで現状を見返すと、これまで気づかなかった改善点が見えてくるはずです。
コマンドを覚える前に、AIに任せてみませんか
サーバー操作にLinuxコマンドの習得は必須ではなくなりつつあります。
AI鬼管理では、Claude Codeを使ったサーバー・業務自動化を無料相談で伴走支援しています。
ここから先の進め方は、大きく2つあります。
自社で回せるようになりたい方は、AI鬼管理でClaude Code/Codexの使い方から業務設計・社内定着まで伴走を受けながら、社内に仕組みを作る道があります。
覚えるより任せたい方は、AIBPO by AI鬼管理でこの記事のような定型業務を丸ごと預ける道があります。総額はいまの業務コストの70〜80%が目安、月額基本料は0円です。
どちらが合うかは、業務量と社内体制次第です。無料相談・無料適合診断で、貴社の場合はどちらが向くかからご相談いただけます。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
よくある質問
Q. ハードリンクとシンボリックリンクはどちらを使うべきですか?
A. 迷った場合はシンボリックリンクが扱いやすくおすすめです。ディレクトリにも作成でき、リンク先が視覚的に分かりやすいためです。ハードリンクは、同一ファイルシステム内で確実に実体を共有したいという明確な理由がある場合に検討します。
Q. シンボリックリンクの元ファイルを削除するとどうなりますか?
A. シンボリックリンクは参照先のパス情報しか持っていないため、元ファイルを削除するとリンク切れ(デッドリンク)状態になります。そのリンクにアクセスしようとするとエラーになるため、削除・移動する際はリンクの存在を事前に確認することが推奨されます。
Q. ハードリンクを別のディスクに作成できないのはなぜですか?
A. ハードリンクは同じinode(ファイルシステム内の実体管理番号)を共有する仕組みのため、inodeの体系が異なる別のファイルシステム(別ディスク・別パーティション)をまたいで作成することができません。この場合はシンボリックリンクを使用します。
Q. lnコマンドで既存ファイルを誤って上書きしないためにはどうすればいいですか?
A. -iオプションを付けて実行すると、リンク名が既存ファイルと重複する場合に上書き前の確認を挟んでくれます。特に本番環境での作業では、-fオプション(強制上書き)よりも-iオプションを基本の運用にすることをおすすめします。
Q. リンクが正しく機能しているか確認する方法はありますか?
A. 「ls -l」コマンドで一覧表示すると、シンボリックリンクは「リンク名 -> 参照先パス」という形式で表示されます。参照先が存在しない場合は多くの端末で色分け表示されるため、視覚的にリンク切れを発見しやすくなっています。
Q. Linuxコマンドが分からなくてもAIにサーバー操作を任せられますか?
A. 任せられます。Claude CodeのようなAIコーディングエージェントは、「設定ファイルを切り替えて」といった日本語の指示から、必要なコマンド(lnコマンドを含む)を判断し実行してくれます。実行前に影響範囲を説明させる運用にすると、安全性も確保できます。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。




