カテゴリ: Linux 更新日: 2026/08/28

Linuxのリンクとは?ハードリンクとシンボリックリンクの違いやファイル参照の仕組みを初心者向けに徹底解説

Linuxのリンクとは?ファイル参照の仕組み
Linuxのリンクとは?ファイル参照の仕組み

先生と生徒の会話形式で理解しよう

生徒

「Linuxのファイルシステムを勉強していたら、リンクという言葉が出てきました。ファイルをコピーすることとは違うんですか?」

先生

「Linuxのリンクは、ファイルそのものを複製するのではなく、同じファイルを別の名前から参照したり、別のファイルやディレクトリを指し示したりするための仕組みです。」

生徒

「リンクには種類があるんですか?」

先生

「あります。Linuxではハードリンクとシンボリックリンクが代表的です。見た目は似ていますが、ファイルを参照する仕組みや元ファイルを削除したときの動きが違います。初心者向けに順番に確認していきましょう。」

Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。

試して理解 Linuxのしくみを見る

※ Amazonアソシエイト広告リンク

1. Linuxのリンクとは?ファイル参照の基本

1. Linuxのリンクとは?ファイル参照の基本
1. Linuxのリンクとは?ファイル参照の基本

Linuxのリンクとは、あるファイルやディレクトリを別の名前や別の場所から参照するための仕組みです。英語ではLinkと書き、読み方はLink(リンク)です。Linuxのファイルシステムでは、リンクを利用することで同じデータへ複数の名前からアクセスしたり、離れた場所にあるファイルを簡単に参照したりできます。

Windowsを使ったことがある人なら、デスクトップに作成するショートカットを思い浮かべると分かりやすいでしょう。ただし、Linuxのリンクには複数の種類があり、すべてがWindowsのショートカットと同じ仕組みというわけではありません。特にLinuxでは、ハードリンクシンボリックリンクという二種類が重要です。

ハードリンクは英語でHard Linkと書き、読み方はHard Link(ハードリンク)です。同じファイルの実体を別のファイル名から参照する仕組みです。一方、シンボリックリンクは英語でSymbolic Linkと書き、読み方はSymbolic Link(シンボリックリンク)です。別のファイルやディレクトリの場所を指し示すリンクです。シンボリックリンクは、略してシンボリックリンクやシムリンクと呼ばれることもあります。

Linuxのリンクを理解すると、ファイルシステム、ディレクトリ構造、inode、ファイル参照、ストレージ管理、設定ファイルの管理などが理解しやすくなります。Linuxサーバーではリンクがさまざまな場所で利用されているため、初心者でも基本的な仕組みを覚えておくと役立ちます。

Linuxのリンクはファイルを単純にコピーする仕組みではありません。リンクを作成すると、同じデータや別の場所にあるファイルを別の名前から参照できるようになります。

2. ハードリンクとは?同じファイルの実体を参照する仕組み

2. ハードリンクとは?同じファイルの実体を参照する仕組み
2. ハードリンクとは?同じファイルの実体を参照する仕組み

ハードリンクとは、一つのファイルの実体を複数のファイル名から参照できるようにする仕組みです。Linuxのファイルシステムでは、ファイル名と実際のデータが直接同じものとして管理されているわけではありません。その間にinodeという重要な情報があります。

inodeは、読み方はinode(アイノード)といいます。Linuxのファイルシステムで、ファイルの所有者、アクセス権、サイズ、保存されているデータの位置などを管理するための情報です。通常のファイル名は、このinodeを参照しています。

ハードリンクを作成すると、新しいファイル名が同じinodeを参照するようになります。つまり、元ファイルとハードリンクは、どちらか一方が本物でもう一方がショートカットという関係ではありません。どちらの名前からアクセスしても同じファイルの実体を参照します。

Linuxでハードリンクを作成するときは、lnコマンドを使います。読み方はln(エルエヌ)です。まず、確認用のファイルを作成してからハードリンクを作ってみましょう。


echo "Linux link sample" > original.txt
ln original.txt hardlink.txt

この例では、original.txtというファイルを作成し、そのファイルと同じ実体を参照するhardlink.txtというハードリンクを作成しています。どちらの名前でファイルを開いても、同じ内容を確認できます。

ハードリンクでは、元ファイルという考え方が少し特殊です。作成した二つのファイル名はどちらも同じinodeを参照するため、片方だけが特別な本体というわけではありません。これが後で説明するシンボリックリンクとの大きな違いです。

3. inode番号でハードリンクの仕組みを確認する

3. inode番号でハードリンクの仕組みを確認する
3. inode番号でハードリンクの仕組みを確認する

ハードリンクが同じファイルの実体を参照していることは、inode番号を確認すると分かりやすくなります。inode番号は、それぞれのinodeを区別するためにファイルシステム内で使われる番号です。

ls -liを実行すると、ファイルのinode番号を含めた詳細情報を確認できます。lsは読み方はls(エルエス)です。-iを指定するとinode番号を表示できます。


ls -li original.txt hardlink.txt
123456 -rw-r--r-- 2 user user 18 Aug 27 10:00 hardlink.txt
123456 -rw-r--r-- 2 user user 18 Aug 27 10:00 original.txt

この例では、original.txthardlink.txtの先頭に同じinode番号が表示されています。つまり、二つのファイル名が同じinodeを参照していることが分かります。

また、アクセス権の後ろに表示されている数値が二になっています。これは、このinodeを参照しているハードリンクの数を表しています。元のファイル名と新しく作ったハードリンクの二つが存在するため、リンク数が二になっています。

Linux初心者にとってinodeは少し難しく感じるかもしれませんが、ファイル名そのものがデータではないと考えると分かりやすくなります。ファイル名はinodeを参照する入口のようなもので、ハードリンクは同じ部屋に入る入口をもう一つ作るようなイメージです。

4. シンボリックリンクとは?別のファイルやディレクトリを指す仕組み

4. シンボリックリンクとは?別のファイルやディレクトリを指す仕組み
4. シンボリックリンクとは?別のファイルやディレクトリを指す仕組み

シンボリックリンクは、別のファイルやディレクトリの場所を指し示す特別なファイルです。ハードリンクが同じinodeを直接参照するのに対して、シンボリックリンクは対象となるファイルのパスを参照します。

パスは英語でPathと書き、読み方はPath(パス)です。Linuxのファイルやディレクトリがどこにあるのかを示す住所のような情報です。例えば/home/user/Documents/sample.txtのような文字列がパスになります。

シンボリックリンクを作成するときもlnコマンドを利用しますが、-sオプションを指定します。


ln -s original.txt shortcut.txt

このコマンドを実行すると、shortcut.txtというシンボリックリンクが作成されます。shortcut.txtを開くと、実際にはoriginal.txtが参照されます。

シンボリックリンクはファイルだけではなく、ディレクトリに対しても作成できます。例えば、非常に深い場所にあるディレクトリを頻繁に利用する場合、その場所を指すシンボリックリンクを自分のホームディレクトリに作成すると移動しやすくなります。

Linuxサーバーでは、設定ファイルやアプリケーションのバージョン切り替えなどにもシンボリックリンクが利用されます。そのため、Linuxのファイルシステムを学習するときには非常に重要な仕組みです。

5. lsコマンドでシンボリックリンクを確認する

5. lsコマンドでシンボリックリンクを確認する
5. lsコマンドでシンボリックリンクを確認する

作成したシンボリックリンクは、ls -lコマンドを使って確認できます。-lはファイルの詳細情報を表示するためのオプションです。


ls -l shortcut.txt
lrwxrwxrwx 1 user user 12 Aug 27 10:05 shortcut.txt -> original.txt

シンボリックリンクの場合、詳細表示の先頭がlになります。これはリンクであることを示しています。また、ファイル名の後ろにはshortcut.txtoriginal.txtを参照していることが表示されています。

普通のファイルでは先頭に-が表示されることが多く、ディレクトリではdが表示されます。シンボリックリンクではlが表示されるため、ls -lの見方を覚えておくと、Linuxのファイル種類を確認するときにも役立ちます。

また、シンボリックリンクがどこを参照しているのかだけを確認したい場合は、readlinkコマンドを利用できます。読み方はreadlink(リードリンク)です。


readlink shortcut.txt
original.txt

この結果から、shortcut.txtoriginal.txtを参照していることが分かります。シンボリックリンクが多く使われているLinux環境では、リンク先を調べるときに便利なコマンドです。

6. ハードリンクとシンボリックリンクの違い

6. ハードリンクとシンボリックリンクの違い
6. ハードリンクとシンボリックリンクの違い

Linuxのリンクを理解するときに最も重要なのが、ハードリンクとシンボリックリンクの違いです。どちらも別の名前からファイルへアクセスできるようになりますが、内部の参照方法が異なります。

比較項目 ハードリンク シンボリックリンク
参照方法 同じinodeを直接参照する 対象のパスを参照する
inode番号 元のファイルと同じ 別のinodeを持つ
ディレクトリへの作成 通常は制限される 作成できる
別のファイルシステム 通常は作成できない 作成できる
参照先を削除した場合 ほかのハードリンクから利用できる リンク切れになる

ハードリンクは同じinodeを直接参照するため、同じファイルシステム内で利用する必要があります。別のディスクや別のファイルシステムに対して同じinodeを参照することはできません。また、ファイルシステムの構造を複雑にしないため、一般ユーザーがディレクトリにハードリンクを作成することは通常制限されています。

一方、シンボリックリンクは単に対象のパスを記録しているため、別のファイルシステムや別のディスクにあるファイルにもリンクできます。ディレクトリに対するリンクも作成できます。そのため、Linuxの実際の運用ではシンボリックリンクを目にする機会が多くあります。

7. 元ファイルを削除するとリンクはどうなる?

7. 元ファイルを削除するとリンクはどうなる?
7. 元ファイルを削除するとリンクはどうなる?

ハードリンクとシンボリックリンクの違いを理解するためには、参照しているファイルを削除したときの動きを確認すると分かりやすくなります。

ハードリンクの場合、元のファイル名を削除しても、ほかに同じinodeを参照するハードリンクが残っていればデータ自体は利用できます。Linuxではファイル名を削除しただけで、ほかのハードリンクが存在する間はファイルの実体がすぐに消えるわけではありません。

例えば、original.txthardlink.txtが同じinodeを参照している状態で、original.txtを削除します。


rm original.txt
cat hardlink.txt
Linux link sample

original.txtを削除しても、hardlink.txtが同じinodeを参照しているため、ファイルの内容を読むことができます。

一方、シンボリックリンクでは参照先のファイルが削除されると、リンク先が存在しない状態になります。この状態はリンク切れと呼ばれることがあります。読み方はリンク切れ(リンクギレ)です。

シンボリックリンクはパスを記録しているだけなので、そのパスに対象ファイルがなくなれば参照できません。ただし、同じ場所に同じ名前のファイルを再び作成すると、そのシンボリックリンクから再びアクセスできる場合があります。

8. 絶対パスと相対パスでシンボリックリンクを作る違い

8. 絶対パスと相対パスでシンボリックリンクを作る違い
8. 絶対パスと相対パスでシンボリックリンクを作る違い

シンボリックリンクを作るときには、絶対パスと相対パスの違いも重要です。絶対パスは、読み方は絶対パス(ゼッタイパス)といい、ルートディレクトリから目的のファイルまでの場所をすべて記述する方法です。

例えば/home/user/Documents/sample.txtのように先頭から完全な場所を書く方法が絶対パスです。絶対パスを使ったシンボリックリンクは、リンクそのものを別のディレクトリへ移動しても同じ場所を参照しやすいという特徴があります。


ln -s /home/user/Documents/sample.txt sample-link.txt

一方、相対パスは、読み方は相対パス(ソウタイパス)といい、現在の場所やリンクを置く場所を基準にして目的のファイルを指定する方法です。


ln -s Documents/sample.txt sample-link.txt

相対パスを使うと、関連するディレクトリ構成をまとめて別の場所へ移動した場合でもリンク関係を維持しやすいことがあります。しかし、リンクだけを別の場所へ移動すると参照先が変わってしまうこともあります。

Linux初心者は、シンボリックリンクがリンクを置いた場所から見てどこを指しているのかを意識すると理解しやすくなります。リンク切れが起きた場合にも、絶対パスと相対パスの違いを知っていると原因を探しやすくなります。

9. Linuxでリンクが使われる代表的な場面

9. Linuxでリンクが使われる代表的な場面
9. Linuxでリンクが使われる代表的な場面

Linuxでは、ハードリンクとシンボリックリンクがファイルシステムやサーバー管理のさまざまな場所で使われています。特にシンボリックリンクは、利用者が分かりやすい名前から実際のファイルへアクセスできるようにするためによく利用されます。

例えば、あるアプリケーションに複数のバージョンがインストールされている場合、現在利用するバージョンを指す名前としてシンボリックリンクを作る方法があります。新しいバージョンへ切り替えるときには、リンク先を変更することで利用するファイルを切り替えられます。

Linuxの設定ファイルでもシンボリックリンクが使われることがあります。実際の設定ファイルは別の場所へ保存し、必要なディレクトリからシンボリックリンクで参照することで、ファイルを複製せずに管理できます。複数の場所へ同じ設定内容をコピーしてしまうと、どれが最新なのか分からなくなる可能性がありますが、リンクを使えば一つのファイルを参照できます。

また、長いディレクトリ名や深い階層にあるディレクトリへ簡単に移動するために、自分のホームディレクトリへシンボリックリンクを作ることもできます。Linuxサーバーの管理では、このような使い方を目にすることがあります。

Linuxのリンクで覚えておきたい基本用語

リンクは、ファイルやディレクトリを別の名前や別の場所から参照する仕組みです。

ハードリンクは、同じinodeを複数のファイル名から参照する仕組みです。

シンボリックリンクは、別のファイルやディレクトリのパスを参照する特別なファイルです。

inodeは、Linuxファイルシステムでファイルの属性やデータの場所などを管理する情報です。

lnコマンドは、ハードリンクやシンボリックリンクを作成するときに利用します。

readlinkコマンドは、シンボリックリンクが参照している場所を確認するときに利用できます。

Linux初心者がリンクについて学習するときは、最初からinodeの内部構造を細かく覚える必要はありません。まず、ハードリンクは同じファイルの実体に複数の名前を付けるような仕組みで、シンボリックリンクは別のファイルやディレクトリを指し示す仕組みだと理解しておきましょう。

Linuxのリンクを理解すると、単にlnコマンドの使い方を覚えるだけでなく、Linuxではファイル名とファイルの実体がどのような関係になっているのか、inodeがどのような役割を持っているのか、ファイルを削除したときにデータがいつ消えるのかといったファイルシステムの基本も見えてきます。

特にLinuxファイルシステムやストレージ管理を学ぶ場合は、ファイル、ディレクトリ、inode、ハードリンク、シンボリックリンク、絶対パス、相対パスといった用語を関連付けて覚えることが重要です。リンクはLinuxサーバー管理やアプリケーションの設定でも利用される基本的な仕組みなので、実際にlnls -lireadlinkなどのコマンドを実行しながら動きを確認すると理解しやすくなります。

LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。

Linux教科書 LPICレベル1 スピードマスター問題集を見る

※ Amazonアソシエイト広告リンク

まとめ

まとめ
まとめ

Linuxのリンクとは、ファイルやディレクトリを別の名前や別の場所から参照するための仕組みです。Linuxのファイルシステムでは、単純にファイルを複製するコピーとは異なり、一つのファイルの実体を複数の名前から参照したり、別の場所にあるファイルやディレクトリを指し示したりできます。Linux初心者がリンクを理解するときは、まずハードリンクシンボリックリンクの二種類があることを覚えておくと、ファイル参照の仕組みを整理しやすくなります。

Linuxでは、普段画面に表示されているファイル名と、ストレージに保存されているファイルの実体が完全に同じものとして管理されているわけではありません。Linuxファイルシステムではinodeという管理情報があり、ファイル名はinodeを通してファイルの実体へつながっています。この仕組みを理解すると、なぜハードリンクでは複数のファイル名から同じデータへアクセスできるのか、なぜ一つのファイル名を削除してもデータが残る場合があるのかが分かりやすくなります。

ハードリンクの仕組みを振り返ろう

ハードリンクは、一つのファイルの実体に対して別のファイル名を追加するような仕組みです。元のファイル名とハードリンクは同じinodeを参照します。そのため、どちらか一方だけが本体で、もう一方が単なる案内役という関係ではありません。どちらのファイル名から開いても同じデータにアクセスできます。

Linuxでハードリンクを作成するときは、lnコマンドを利用します。例えば、確認用のファイルを作成してからハードリンクを追加すると、次のようになります。


echo "Linux link sample" > original.txt
ln original.txt hardlink.txt

この状態では、original.txthardlink.txtが同じファイルの実体を参照しています。ハードリンクの仕組みを確認したい場合には、ls -liを使ってinode番号を見る方法が分かりやすいでしょう。


ls -li original.txt hardlink.txt
123456 -rw-r--r-- 2 user user 18 Aug 27 10:00 hardlink.txt
123456 -rw-r--r-- 2 user user 18 Aug 27 10:00 original.txt

二つのファイルのinode番号が同じであれば、同じファイルの実体を参照していることが分かります。Linux初心者は、ハードリンクを同じ部屋へ入るための別の入口と考えると理解しやすくなります。入口の名前が違っていても、入った先にあるデータは同じです。

シンボリックリンクの仕組みを振り返ろう

シンボリックリンクは、別のファイルやディレクトリの場所を指し示す特別なファイルです。ハードリンクが同じinodeを直接参照するのに対して、シンボリックリンクはリンク先のパスを記録しています。この違いが、Linuxにおけるハードリンクとシンボリックリンクを見分ける重要なポイントです。

シンボリックリンクを作成するときは、lnコマンドに-sオプションを付けます。


ln -s original.txt shortcut.txt

この例では、shortcut.txtというシンボリックリンクがoriginal.txtを指しています。シンボリックリンクはファイルだけではなくディレクトリにも作成できるため、Linuxサーバー管理では非常によく利用されます。深い場所にあるディレクトリへ簡単に移動したい場合や、アプリケーションの現在利用するバージョンを分かりやすい名前から参照したい場合などにも便利です。

作成したシンボリックリンクは、ls -lを使って確認できます。


ls -l shortcut.txt
lrwxrwxrwx 1 user user 12 Aug 27 10:05 shortcut.txt -> original.txt

詳細表示の先頭にlが表示されている場合、そのファイルはシンボリックリンクです。また、リンク名の後ろに参照先が表示されるため、どこを指しているのかを確認できます。Linuxの設定ファイルやアプリケーションを調査していると、見慣れないファイル名が実際にはシンボリックリンクだったということもよくあります。

ハードリンクとシンボリックリンクの違いを整理しよう

ハードリンクとシンボリックリンクは、どちらも別の名前からファイルへアクセスできる仕組みですが、内部ではまったく同じ動きをしているわけではありません。ハードリンクは同じinodeを参照しますが、シンボリックリンクは参照先のパスを記録しています。

比較項目 ハードリンク シンボリックリンク
参照の仕組み 同じinodeを参照する リンク先のパスを参照する
inode番号 同じになる 別のinodeを持つ
ディレクトリへのリンク 通常は制限される 作成できる
別のファイルシステムへのリンク 作成できない 作成できる
参照先を削除した場合 別のハードリンクが残れば利用できる リンク切れになる

Linux初心者が特に間違えやすいのは、ハードリンクもシンボリックリンクも元ファイルへのショートカットだと思ってしまう点です。ハードリンクには、どちらが元ファイルかという明確な主従関係がありません。同じinodeを参照する複数のファイル名という関係です。一方、シンボリックリンクにはリンク先となるパスがあり、その場所に対象が存在しなくなるとリンク切れが起こります。

ファイルを削除したときの違いも重要

Linuxのリンクを理解するためには、ファイルを削除した場合の動きも重要です。ハードリンクでは、同じinodeを参照するファイル名が残っている間、ファイルの実体を利用できます。そのため、一つのファイル名をrmコマンドで削除しても、ほかのハードリンクから同じ内容を読み込めます。


rm original.txt
cat hardlink.txt
Linux link sample

この結果から、original.txtという名前を削除しても、hardlink.txtが同じinodeを参照しているためデータが残っていることが分かります。Linuxファイルシステムでは、単にファイル名を削除することと、保存されているデータそのものが使えなくなることが必ずしも同じタイミングではありません。

一方でシンボリックリンクの場合は、参照先のファイルを削除すると、そのリンクが指していた場所に対象が存在しなくなります。これがリンク切れです。シンボリックリンク自体は残っていても、参照先を開くことができません。この違いを理解しておくと、Linuxでファイルを削除するときや設定を変更するときのトラブルを減らせます。

絶対パスと相対パスもリンク作成では大切

シンボリックリンクを作る場合には、絶対パスと相対パスの違いも理解しておきたいポイントです。絶対パスはルートディレクトリから目的の場所までをすべて指定する方法です。一方、相対パスはリンクが置かれている場所などを基準にして参照先を指定します。

絶対パスを使えば参照先の場所が明確になりますが、ディレクトリ全体を別の環境へ移動した場合には、元の絶対パスが存在しなくなる可能性があります。相対パスの場合は、関連するファイルやディレクトリをまとめて移動するとリンク関係を維持できる場合があります。このため、どちらを使えば必ず正しいということではなく、ファイルやディレクトリをどのように管理するのかを考えて選ぶことが大切です。

シンボリックリンクがどこを指しているのか分からなくなった場合には、readlinkコマンドを使うと簡単に確認できます。


readlink shortcut.txt
original.txt

Linuxサーバーで設定ファイルやアプリケーションの実体を調査するときにも、ls -lreadlinkは役立ちます。リンク先を確認する習慣を付けておくと、実際に編集すべきファイルがどこにあるのかを判断しやすくなります。

Linuxサーバーでリンクが使われる理由

Linuxでは、シンボリックリンクが単なる学習用の機能ではなく、実際のサーバー運用でも広く利用されています。例えば、複数のバージョンが存在するアプリケーションの中から現在利用するものを一つの固定した名前で参照したい場合、シンボリックリンクを利用できます。新しいバージョンへ変更するときには、アプリケーション側の設定をすべて書き換えるのではなく、リンク先を変更する方法があります。

また、設定ファイルの実体を一か所に置き、別のディレクトリからシンボリックリンクを利用して参照することもできます。ファイルを何個もコピーすると、それぞれの内容が違ってしまう可能性がありますが、一つのファイルをリンクから参照すれば管理しやすくなります。

Linuxのファイルシステムやストレージ管理を勉強するときには、リンクを単独の機能として暗記するより、ファイル名、inode、データの実体、ディレクトリ、パスという関係と一緒に理解することが大切です。これらの関係が分かると、Linuxがファイルをどのように管理しているのかをより具体的にイメージできるようになります。

Linuxのリンクで覚えておきたいポイント

Linuxのリンクは、ファイルやディレクトリを別の名前や別の場所から参照する仕組みです。

ハードリンクは同じinodeを参照するため、複数のファイル名が同じファイルの実体につながっています。

シンボリックリンクはファイルやディレクトリのパスを参照する特別なファイルです。

lnコマンドはハードリンクを作成するときに使い、ln -sではシンボリックリンクを作成できます。

ls -liを使うとinode番号を確認できるため、ハードリンクが同じinodeを参照していることを確認できます。

ls -lreadlinkを使うと、シンボリックリンクとリンク先を確認できます。

ハードリンクとシンボリックリンクでは、参照方法、inode番号、ディレクトリへのリンク、別のファイルシステムへのリンク、参照先を削除したときの動作などが異なります。

Linux初心者は、最初からinodeやファイルシステムの内部構造をすべて覚える必要はありません。まずは、ハードリンクは同じデータへ別の入口を作る仕組み、シンボリックリンクは別の場所を指し示す案内板のような仕組みと考えておくと分かりやすくなります。そのうえで実際にlnls -lils -lreadlinkrmなどのLinuxコマンドを使って動きを確認すると、ファイル参照の仕組みがより具体的に理解できます。

Linuxのリンクは、ファイルシステム、inode、ストレージ管理、絶対パス、相対パス、ディレクトリ構造、設定ファイル、Linuxサーバー管理など、多くの分野と関係しています。リンクの基本が分かるようになると、Linuxのディレクトリを調べたときに表示される矢印の意味や、なぜ同じ内容のファイルが別の名前から利用できるのか、なぜ削除したはずのデータが別の名前から読める場合があるのかといった疑問も解決しやすくなります。

先生と生徒の振り返り会話

生徒

「Linuxのリンクは、ファイルをコピーして同じものを二つ作る仕組みではないんですね。」

先生

「そうです。リンクはファイルを別の名前や別の場所から参照する仕組みです。コピーとはデータの持ち方が違います。」

生徒

「ハードリンクは、元ファイルへのショートカットというより、同じinodeにつながる別のファイル名と考えればいいですか?」

先生

「その理解が分かりやすいです。ハードリンクでは複数のファイル名が同じinodeを参照するため、どちらか一方だけが特別な本体という関係ではありません。」

生徒

「だから一方の名前を削除しても、別のハードリンクが残っていればデータを読めるんですね。」

先生

「はい。同じinodeへの参照が残っているので、別のファイル名から同じデータを利用できます。ハードリンクを理解すると、Linuxでファイルを削除する仕組みも見えてきます。」

生徒

「シンボリックリンクは、ハードリンクとは違ってリンク先のパスを覚えているんですよね。」

先生

「そのとおりです。そのため、参照先のファイルが削除されたり移動されたりすると、シンボリックリンクがリンク切れになる場合があります。」

生徒

「シンボリックリンクなら、ディレクトリにも作れたり、別のファイルシステムにあるファイルを参照できたりするんですね。」

先生

「はい。その使いやすさから、Linuxサーバーではシンボリックリンクを目にする機会が多くあります。設定ファイルの管理やアプリケーションのバージョン切り替えなどにも利用されます。」

生徒

「リンクの種類が分からないときは、どんなLinuxコマンドを使えばいいですか?」

先生

「ハードリンクのinode番号を調べるならls -li、シンボリックリンクを確認するならls -lが便利です。リンク先だけを確認したい場合にはreadlinkも使えます。」

生徒

「絶対パスと相対パスも、シンボリックリンクを作るときに関係するんですね。」

先生

「そうです。シンボリックリンクはパスを参照するので、どの場所を基準にリンク先を指定しているのかが重要です。リンク切れを調べるときにも役立つ知識です。」

生徒

「Linuxのリンクを理解すると、inodeやファイルシステムの仕組みまで一緒に分かってくるんですね。」

先生

「はい。リンクはLinuxのファイル参照を理解するための重要なテーマです。ハードリンクとシンボリックリンクの違いを実際のコマンドで確認すると、Linuxファイルシステムやストレージ管理の理解がさらに深まります。」

関連記事:
カテゴリの一覧へ
新着記事
New1
基本情報技術者試験
命令ミックスを完全ガイド!CPUの性能を理解するための初心者向けやさしい解説
更新記事
New2
基本情報技術者試験
クロックサイクル時間をわかりやすく解説!CPUの動きを初心者向けに丁寧ガイド
更新記事
New3
基本情報技術者試験
MIPS(Million Instruction Per Second)を完全ガイド!初心者でもわかるCPU性能の基本
更新記事
New4
基本情報技術者試験
CPI(Clock Cycles Per Instruction)を初心者向けに完全ガイド!CPUの仕組みをやさしく解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.2
Java&Spring記事人気No2
基本情報技術者試験
DHCP
376
DHCPとは?初心者でもわかるIPアドレス自動割り当ての仕組み
No.3
Java&Spring記事人気No3
基本情報技術者試験
CPU
350
CPUとは何かを完全解説!初心者でもわかるコンピュータの頭脳の仕組み
No.4
Java&Spring記事人気No4
基本情報技術者試験
NIC
309
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.5
Java&Spring記事人気No5
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.6
Java&Spring記事人気No6
基本情報技術者試験
NTP
207
NTPとは?初心者でもわかる時刻同期の仕組みとネットワーク時刻プロトコルの基本
No.7
Java&Spring記事人気No7
基本情報技術者試験
IPv4
181
IPv4とは?初心者でもわかるIPアドレスの基本と通信のルール
No.8
Java&Spring記事人気No8
基本情報技術者試験
SMTP
177
SMTPとは?初心者でもわかるメール送信の仕組みとプロトコルをやさしく解説!