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

Linuxのシンボリックリンクとは?ln -sで作るショートカットリンクを初心者向けに解説

Linuxのシンボリックリンクとは?ショートカットリンク
Linuxのシンボリックリンクとは?ショートカットリンク

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

生徒

「Linuxで、よく使うファイルやフォルダにすぐ移動できるショートカットのようなものは作れますか?」

先生

「Linuxでは、シンボリックリンクという仕組みを使うと、別の場所にあるファイルやディレクトリを簡単に参照できます。」

生徒

「Windowsのショートカットと同じようなものですか?」

先生

「考え方はよく似ています。Linuxではln -sコマンドを使って作成し、ファイル操作やサーバー管理でもよく使います。基本から順番に見ていきましょう。」

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

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

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

1. Linuxのシンボリックリンクとは?

1. Linuxのシンボリックリンクとは?
1. Linuxのシンボリックリンクとは?

Linuxの読み方はLinux(リナックス)です。シンボリックリンクとは、Linuxで別のファイルやディレクトリを指し示すためのリンクです。英語ではsymbolic link(シンボリックリンク)といい、短くsymlink(シムリンク)と呼ばれることもあります。初心者の方は、まず「Linuxで使えるショートカットのような仕組み」と考えると理解しやすいでしょう。

たとえば、深い階層にある設定ファイルを毎回長いパスで指定するのは大変です。そこで、わかりやすい場所にシンボリックリンクを作っておけば、そのリンクを通して元のファイルを開けます。リンクそのものに元の内容が複製されるわけではなく、参照先の場所を示す案内板のような役割を持っています。

Linuxのファイルシステムでは、シンボリックリンクも一つのファイルとして扱われます。ただし通常のテキストファイルや画像ファイルとは異なり、中身として参照先へのパスを持っています。そのため、リンクを開くとLinuxが参照先をたどり、目的のファイルやディレクトリへアクセスしてくれます。

シンボリックリンクは、設定ファイルの切り替え、Webサーバーの公開先、共有ディレクトリ、バージョンごとのファイル管理など、Linuxの実務で非常によく登場する基本用語です。

2. シンボリックリンクの読み方とショートカットとの違い

2. シンボリックリンクの読み方とショートカットとの違い
2. シンボリックリンクの読み方とショートカットとの違い

シンボリックリンクの読み方は、symbolic link(シンボリックリンク)です。symbolicは「象徴的な」「記号による」といった意味を持ち、linkは「つなぐもの」「結びつき」という意味です。Linuxでは、ある場所から別の場所へつながる特別なリンクとして使われます。

Windowsのショートカットに似ていますが、Linuxのシンボリックリンクは、コマンドやプログラムから見ても通常のパスと同じように扱いやすい点が特徴です。たとえばアプリケーションが/var/www/currentという場所を読み込むように設定されている場合、currentを実体のディレクトリへ向けたシンボリックリンクにしておけば、リンク先を変更するだけで参照するバージョンを切り替えられます。

また、シンボリックリンクはファイルだけでなくディレクトリにも作成できます。よく使うフォルダへの入口をホームディレクトリに作る、長いパスを短くする、複数の場所から同じデータを参照するといった使い方ができます。

ただし、シンボリックリンクの参照先を削除すると、リンクだけが残って目的のファイルへ到達できなくなります。この状態は「リンク切れ」と呼ばれます。ショートカットの参照先がなくなって開けなくなる状態を想像するとわかりやすいでしょう。

3. ln -sコマンドでシンボリックリンクを作成する方法

3. ln -sコマンドでシンボリックリンクを作成する方法
3. ln -sコマンドでシンボリックリンクを作成する方法

Linuxでシンボリックリンクを作成するときは、lnコマンドを使います。lnの読み方はln(エルエヌ)です。これはlink(リンク)を作成するための基本コマンドで、-sオプションを付けるとシンボリックリンクになります。

基本の書き方は、ln -s リンク先 リンク名です。最初に実体となるファイルやディレクトリを指定し、そのあとに新しく作るリンクの名前を書きます。順番を逆にしないように注意してください。

次の例では、memo.txtというファイルを作成し、そのファイルを指すmemo-link.txtというシンボリックリンクを作ります。


echo "Linux study memo" > memo.txt
ln -s memo.txt memo-link.txt
cat memo-link.txt
Linux study memo

cat memo-link.txtを実行すると、リンク先であるmemo.txtの内容が表示されます。つまり、シンボリックリンクを開いているように見えても、実際にはLinuxがリンク先をたどって元のファイルを読み込んでいます。

この仕組みを使えば、長い名前のファイルや深い階層にあるファイルに対して、短く覚えやすい別名を付けることができます。ファイル本体をコピーする必要がないため、同じ内容を二重に保存して管理する手間も増えません。

4. ディレクトリにシンボリックリンクを作る方法

4. ディレクトリにシンボリックリンクを作る方法
4. ディレクトリにシンボリックリンクを作る方法

シンボリックリンクは、ファイルだけでなくディレクトリにも作成できます。ディレクトリの読み方はdirectory(ディレクトリ)で、Linuxではファイルを整理して保存するための入れ物を意味します。Windowsのフォルダとほぼ同じ感覚で考えてかまいません。

たとえば、ホームディレクトリの中にあるprojects/siteをよく使う場合、ホームディレクトリ直下にsite-linkというリンクを作っておくと便利です。


mkdir -p ~/projects/site
ln -s ~/projects/site ~/site-link
ls -ld ~/site-link
lrwxrwxrwx 1 user user 24 Aug 9 20:00 /home/user/site-link -> /home/user/projects/site

表示の中にある->の右側がシンボリックリンクの参照先です。左側のsite-linkから、右側の/home/user/projects/siteへつながっていることがわかります。

このリンクを使えば、cd ~/site-linkのように短いパスで目的のディレクトリへ移動できます。Linuxサーバーではディレクトリ階層が深くなることがあるため、よく使う場所へのシンボリックリンクを作っておくと操作が簡単になります。

すでに同じ名前のファイルやディレクトリが存在する場所へリンクを作ろうとすると、エラーになることがあります。リンク名は、既存の名前と重ならないように確認してから指定しましょう。

5. ls -lとreadlinkでリンク先を確認する方法

5. ls -lとreadlinkでリンク先を確認する方法
5. ls -lとreadlinkでリンク先を確認する方法

作成したシンボリックリンクがどこを指しているか確認するときは、ls -lコマンドが便利です。lsの読み方はls(エルエス)で、ファイルやディレクトリの一覧を表示するLinuxの基本コマンドです。-lを付けると、種類、権限、所有者、サイズ、更新日時などを詳しく表示できます。

シンボリックリンクの場合、一覧の先頭文字がlになり、リンク名の後ろに参照先が表示されます。


ls -l memo-link.txt
lrwxrwxrwx 1 user user 8 Aug 9 20:10 memo-link.txt -> memo.txt
readlink memo-link.txt
memo.txt

readlinkは、読み方はreadlink(リードリンク)です。シンボリックリンクが保持している参照先のパスを表示するコマンドです。ls -lはリンクの情報全体を確認したいとき、readlinkはリンク先だけを簡単に確認したいときに使うとわかりやすいでしょう。

サーバー管理では、「この設定ファイルは本当にどこを参照しているのか」「今使っている公開ディレクトリはどのバージョンなのか」を確認する場面があります。そのようなときに、ls -lreadlinkを使えると、リンクの状態をすぐに調べられます。

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

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

シンボリックリンクを作るときは、リンク先を絶対パスまたは相対パスで指定できます。絶対パスの読み方は絶対パス(ゼッタイパス)です。ルートディレクトリから目的の場所までを最初から全部書く方法で、たとえば/home/user/data/file.txtのように表します。

相対パスの読み方は相対パス(ソウタイパス)です。現在いる場所やリンクを置く場所を基準にして、目的のファイルまでの位置関係を書く方法です。たとえば同じディレクトリにあるmemo.txtを指すなら、単にmemo.txtと書けます。

絶対パスで作ったリンクは、リンクそのものを別の場所へ移動しても参照先が変わりにくい点がわかりやすい特徴です。一方で、システムを別の環境へコピーしたときに、同じ絶対パスが存在しないとリンク切れになることがあります。

相対パスで作ったリンクは、関連するファイルやディレクトリをまとめて移動したときでも、位置関係が変わらなければそのまま使える場合があります。そのため、プロジェクトフォルダの中だけで完結するリンクでは相対パスが便利です。

初心者のうちは、リンクを作ったあとにls -lで参照先を確認し、実際にcatcdでアクセスできるか試す習慣を付けると、パス指定の間違いを見つけやすくなります。

7. シンボリックリンクを削除する方法とリンク切れの注意点

7. シンボリックリンクを削除する方法とリンク切れの注意点
7. シンボリックリンクを削除する方法とリンク切れの注意点

不要になったシンボリックリンクは、通常のファイルと同じようにrmコマンドで削除できます。rmの読み方はrm(アールエム)です。remove(リムーブ)の意味を持つコマンドで、ファイルを削除するときに使います。

シンボリックリンクだけを削除しても、参照先の元ファイルは削除されません。ここは初心者が安心して覚えておきたい大切なポイントです。


rm memo-link.txt
ls memo.txt
memo.txt

この例ではmemo-link.txtだけを削除しています。そのあとls memo.txtで確認すると、元のmemo.txtは残っていることがわかります。つまり、リンクを消すことと、リンク先の実体を消すことは別の操作です。

反対に、参照先のファイルやディレクトリを先に削除すると、シンボリックリンクだけが残る場合があります。これがリンク切れです。リンク切れの状態では、リンク名は存在していても、開こうとすると「そのようなファイルやディレクトリはありません」といったエラーになります。

Linuxサーバーで古いファイルを整理するときは、削除しようとしているファイルがどこかのシンボリックリンクから参照されていないか確認すると安全です。特にWebサーバーの公開ディレクトリや設定ファイルをリンクで管理している場合は、リンク先を不用意に削除しないようにしましょう。

8. ハードリンクとの違いとLinuxでの主な活用場面

8. ハードリンクとの違いとLinuxでの主な活用場面
8. ハードリンクとの違いとLinuxでの主な活用場面

Linuxには、シンボリックリンクのほかにハードリンクという仕組みもあります。ハードリンクの読み方はhard link(ハードリンク)です。どちらもファイルへ別の名前からアクセスするための仕組みですが、動き方は同じではありません。

シンボリックリンクは、参照先のパスを持つ別のファイルです。そのため、元のファイルを削除するとリンク切れになります。また、別のファイルシステムにある場所やディレクトリへもリンクを作りやすいことが特徴です。

一方、ハードリンクは同じファイルの実体を別の名前から参照する仕組みです。Linuxではファイルの実体を管理する情報としてinode(アイノード)という仕組みが使われています。inodeは、ファイルの種類、権限、所有者、保存場所に関する情報などを管理するためのデータです。ハードリンクは同じinodeを共有しますが、シンボリックリンクは自分自身のinodeを持ち、その中から別のパスを参照します。

初心者が最初に覚えるなら、実務で見かける機会が多く、ディレクトリにも使いやすいシンボリックリンクから理解するのがおすすめです。ハードリンクは、シンボリックリンクとの違いを学ぶ段階で少しずつ覚えると整理しやすいでしょう。

シンボリックリンクの代表的な活用例としては、Webサイトの公開先を切り替える方法があります。たとえばrelease1release2という二つの公開用ディレクトリを用意し、currentというリンクを現在公開したい方へ向けます。新しいバージョンへ変更するときは、currentの参照先を切り替えるだけで済むため、運用しやすくなります。

ほかにも、設定ファイルを共通化したいとき、長いディレクトリ名に短い入口を作りたいとき、ユーザーごとの作業場所から共有ファイルへアクセスしたいときなどに便利です。Linuxを学習していると、/etc/var/usrなどの中でシンボリックリンクを目にすることもあります。

覚えておきたいポイント

シンボリックリンクは、元ファイルそのものではなく、元ファイルやディレクトリの場所を指し示すリンクです。ln -sで作成し、ls -lreadlinkで参照先を確認できます。削除するときはリンクだけを消せるため、元のデータを複製せずに便利な別名や入口を作りたい場面で役立ちます。

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

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

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

まとめ

まとめ
まとめ

Linuxのシンボリックリンクは、別の場所にあるファイルやディレクトリを指し示すための仕組みです。Windowsのショートカットに似た感覚で使えるため、Linux初心者の方は、まず「本体そのものではなく、本体へ案内する入口」と覚えておくと理解しやすくなります。シンボリックリンクを使うと、深い階層にあるファイルへ短い名前でアクセスしたり、よく使うディレクトリへの入口を作ったり、設定ファイルやWebサイトの公開先を切り替えたりできます。

Linuxでは、ファイルやディレクトリを扱うときにパスを指定します。保存場所が深くなるほど入力するパスは長くなりますが、シンボリックリンクを作っておけば、覚えやすい名前から目的の場所へ移動できます。特にLinuxサーバーの管理では、設定ファイル、アプリケーション、共有ディレクトリ、Webサーバーの公開フォルダなどでシンボリックリンクを見かける機会が多いため、基本的な仕組みを理解しておくことが大切です。

シンボリックリンクは元ファイルのコピーではない

シンボリックリンクを理解するときに重要なのは、リンクを作っても元のファイルが複製されるわけではないという点です。たとえば大きなファイルに対してシンボリックリンクを作っても、同じ内容のファイルがもう一つ作られるわけではありません。リンクには参照先を示す情報が保存され、利用者がリンクを開いたときにLinuxが本来のファイルやディレクトリへ案内します。

そのため、元のファイルを一つだけ管理しながら、複数の場所から同じデータへアクセスできます。同じ内容のファイルを何個もコピーして管理すると、片方だけ修正して内容がずれることがあります。シンボリックリンクなら実体は一つなので、参照先の内容を変更するとリンクから見える内容も同じように変わります。この特徴はLinuxのファイル管理を効率化するときに役立ちます。

ln -sの基本構文を覚えておく

Linuxでシンボリックリンクを作成するときは、lnコマンドにsオプションを付けたln -sを使います。基本は「リンク先を先に書き、作成するリンク名を後ろに書く」という順番です。初心者のうちは、この順番を逆にしてしまうことがあるため注意しましょう。


touch original.txt
ln -s original.txt shortcut.txt
ls -l shortcut.txt
lrwxrwxrwx 1 user user 12 Aug 9 21:00 shortcut.txt -> original.txt

この例では、元になるファイルを作成したあと、そこを指すシンボリックリンクを作っています。ls -lで確認すると、リンク名と参照先の関係が表示されます。Linuxでシンボリックリンクが正しく作成できたか確認したいときは、まずls -lを使う習慣を付けるとよいでしょう。

ファイルだけでなくディレクトリにも利用できる

シンボリックリンクは通常のファイルだけでなく、ディレクトリにも作成できます。たとえば作業用のディレクトリが深い場所にあり、毎回長いパスを入力するのが大変な場合、ホームディレクトリに短い名前のリンクを作っておくと便利です。リンク先がディレクトリであっても、通常のディレクトリと同じような感覚でcdコマンドを使って移動できます。


mkdir -p ~/work/linux/project
ln -s ~/work/linux/project ~/project-link
cd ~/project-link
pwd
/home/user/project-link

このように、よく使う場所へのショートカットとしてシンボリックリンクを作っておくと、Linuxのコマンド操作が楽になります。長いパスを何度も入力する必要がなくなり、入力ミスの防止にもつながります。ただし、リンク名だけを見ても元の場所がわかりにくい場合があるため、誰が見ても用途を想像しやすい名前を付けることも大切です。

ls -lとreadlinkで参照先を確認する

Linuxでシンボリックリンクを管理するときは、どこを参照しているのか確認できるようにしておく必要があります。代表的な確認方法がls -lreadlinkです。ls -lではファイルの種類や権限などと一緒にリンク先を確認でき、readlinkではリンクが保持している参照先を簡潔に表示できます。


readlink shortcut.txt
original.txt

シンボリックリンクが多いLinuxサーバーでは、「このリンクはどのファイルを見ているのか」を調べることがよくあります。設定を変更する前やファイルを削除する前に参照先を確認しておけば、誤ったファイルを操作する危険を減らせます。特にWebサーバーやアプリケーションの設定では、見えている名前と実際の保存場所が異なることがあるため、リンク先を確認する操作は重要です。

絶対パスと相対パスの違いも理解しておく

シンボリックリンクの参照先は、絶対パスでも相対パスでも指定できます。絶対パスはルートディレクトリからすべての場所を書く方法なので、参照先がはっきりしやすいのが特徴です。一方、相対パスはリンクを置く場所から見た位置関係で指定します。関連するファイル一式を別の場所へ移動する可能性がある場合は、相対パスのほうが扱いやすいことがあります。

どちらを使えばよいか迷った場合は、まず自分が管理しやすい方法を選び、リンク作成後にls -lreadlinkで確認してください。Linux初心者のうちは、コマンドを実行したら結果を確認するという流れを身につけることが、ファイル操作のミスを減らす近道です。

リンクだけを削除しても元のファイルは残る

不要になったシンボリックリンクは、rmコマンドで削除できます。ここで覚えておきたいのは、シンボリックリンク自体を削除しても、通常は参照先の元ファイルや元ディレクトリは削除されないという点です。シンボリックリンクはあくまで入口なので、入口を取り除いても本体は残ります。


rm shortcut.txt
ls original.txt
original.txt

反対に、元のファイルを先に削除すると、シンボリックリンクだけが残って参照先へ到達できなくなる場合があります。これがリンク切れです。リンク切れになったシンボリックリンクを開こうとしても、目的のファイルが存在しないため正常にアクセスできません。Linuxでファイル整理をするときは、リンクだけを削除するのか、参照先まで削除するのかを区別して考えましょう。

ハードリンクとの違いを整理する

Linuxのリンクには、シンボリックリンクのほかにハードリンクがあります。シンボリックリンクは別の場所へのパスを記録したリンクであるのに対して、ハードリンクは同じファイルの実体を別の名前から参照する仕組みです。この違いを理解すると、Linuxのファイルシステムについてより深く学べます。

シンボリックリンクは元のファイルを削除するとリンク切れになりますが、ハードリンクでは一つの名前を削除しても、ほかのハードリンクが残っていればファイルの内容へアクセスできます。また、シンボリックリンクはディレクトリにも使いやすく、別のファイルシステムをまたいで参照できる場合があるため、一般的なLinux操作やサーバー管理では非常に便利です。

Linux初心者が最初からinodeなどの内部構造を細かく覚える必要はありません。まずは「シンボリックリンクは場所を指し示すリンク」「ハードリンクは同じ実体に別名を付ける仕組み」という違いを押さえておけば十分です。そのあとファイルシステムを学ぶ段階でinodeやリンク数の考え方に進むと理解しやすくなります。

Linuxの実務でシンボリックリンクが使われる理由

シンボリックリンクは、Linuxサーバーの運用やWeb開発でも幅広く使われています。代表的なのは、現在使用するバージョンをわかりやすい固定名で参照する使い方です。たとえば新しいアプリケーションを公開するたびにディレクトリ名が変わる場合でも、常にcurrentというリンクから最新の公開先を参照するようにしておけば、利用する側は毎回新しいパスを覚える必要がありません。

また、複数の場所から同じ設定ファイルを使いたい場合や、よく使う共有ディレクトリへの入口を作りたい場合にも便利です。ファイルをコピーして別々に管理するのではなく、同じ実体を参照できるため、設定内容の食い違いを防ぎやすくなります。Linuxのシンボリックリンクを理解すると、なぜサーバー内に同じような名前のファイルやディレクトリが配置されているのかも読み解きやすくなります。

Linuxのシンボリックリンクを学ぶときは、ln -sで作成し、ls -lreadlinkで確認し、不要になったらrmでリンクだけを削除するという基本操作を繰り返して覚えるのがおすすめです。ファイルとディレクトリの両方で実際に試すと、ショートカットのような仕組みを具体的に理解できます。

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

生徒

「シンボリックリンクは、ファイルをコピーする機能ではなくて、元のファイルやディレクトリへ案内する入口なんですね。」

先生

「その理解で大丈夫です。Linuxではショートカットのように使えて、長いパスを短くしたり、設定ファイルや公開ディレクトリを切り替えたりするときにも役立ちます。」

生徒

「作成するときはln -sで、リンク先を先に書いて、あとからリンク名を書くんでしたね。」

先生

「そうです。作ったあとはls -lreadlinkで、どこを参照しているのか確認すると安心です。」

生徒

「リンクをrmで削除しても、元のファイルまでは消えないんですよね。」

先生

「はい。ただし元のファイルを先に削除するとリンク切れになるので注意しましょう。シンボリックリンクと元のファイルは別のものだと意識しておくことが大切です。」

生徒

「ハードリンクとの違いも、シンボリックリンクは場所を指すリンク、ハードリンクは同じ実体を別の名前で参照する仕組みと考えると整理しやすそうです。」

先生

「その通りです。まずはシンボリックリンクの作成、確認、削除を実際に試して、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
349
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
180
IPv4とは?初心者でもわかるIPアドレスの基本と通信のルール
No.8
Java&Spring記事人気No8
基本情報技術者試験
SMTP
177
SMTPとは?初心者でもわかるメール送信の仕組みとプロトコルをやさしく解説!