Jan 30, 2026
Yūto .
1分 詳しく見る
シンボリックリンク(symlink)は、ほかのファイルやディレクトリを指し示すLinuxの特殊なファイル形式です。Windowsのショートカットと似た挙動でデータを複製せずに高速アクセスを可能にし、複雑なディレクトリ構造の管理が簡単になり、ストレージ使用量の節約にもつながります。
この記事では、シンボリックリンクの基本構造から具体的な作成・削除手順まで順を追って説明します。読み終える頃には、シンボリックリンクを活用して Linux上のファイルとディレクトリを効率よく整理できるようになるでしょう。
Linuxでは、シンボリックリンクがターゲットとなるファイルやディレクトリを参照します。通常のファイルと異なり、リンク自体にデータは含まれず、リンク先の絶対パスだけを保持します。シンボリックリンクへアクセスすると、OS がシステムコールを通じてパスを解決し、ターゲットへ転送する仕組みです。
こうした転送機能により、シンボリックリンクは実際のファイルやディレクトリと同じように扱うことができます。ファイルシステム内の離れた場所にある項目を統一的に管理でき、重複ファイルを作らずに済むため、アクセスもいっそう速くなるのもポイントです。
さらに、シンボリックリンクだけを削除してもターゲットの内容には影響しません。つまり、参照を取り除くだけなので、実データを失う心配なく安全に削除できるというわけです。
シンボリックリンク(別名ソフトリンク)とハードリンクは、ファイル間にリンクを作成する2つの異なる手段であり、主な違いは内部構造にあります。シンボリックリンクは独自のinodeを持つ参照ファイルであり、ターゲットのファイルやディレクトリとは独立して存在します。
これに対し、ハードリンクはターゲットファイルのinodeをそのまま共有し、ファイルのみを参照でき、ディレクトリには設定できません。
以下に両者の違いをまとめました。
| 機能 | シンボリックリンク | ハードリンク |
| ストレージ | ターゲットファイルやディレクトリへのパスを保存 | 元のファイルのデータを直接指し示す |
| inode番号 | ターゲットとは異なるinode番号を持つ | ターゲットと同じinode番号を共有 |
| ファイルシステム | 異なるファイルシステム間でもリンク可能 | 同一ファイルシステム内に限られる |
| ターゲット削除の影響 | ターゲットが削除・移動されると破損リンクになる | いずれかのリンクが残る限り内容は保持される |
| 作成コマンド | ln -s [source] [link] | ln [source] [link] |
| 権限 | リンク自体の権限を持つが、実際のアクセスはターゲットの権限に従う | ターゲットと権限・所有権を共有 |
| 想定シナリオ | ショートカット作成や迅速なアクセスが必要な場面 | 参照間で内容の一貫性を確保したい場合 |
シンボリックリンクを使う場面
ハードリンクを使う場面
シンボリックリンクを効果的に使用する上で、利点と欠点を理解することは極めて重要です。
シンボリックリンクのメリット
シンボリックリンクのデメリット
ここでは、シンプルなコマンドを用いて Linux上でシンボリックリンクを作成する手順を紹介します。なお、Hostinger VPSをお使いの場合は、ターミナルや PuTTYなどのSSHクライアント、あるいはブラウザターミナルからサーバーへ接続し、以下の操作を実行できます。


Linuxでファイルのシンボリックリンクを作成したい場合は、lnコマンドに-sオプションを付けます。基本構文は次のとおりです。
ln -s [target_file] [link_name]
たとえば、myfile.txtを指すmy_linkを作成する場合は、次のコマンドを入力します。
ln -s /path/to/myfile.txt /path/to/my_link
追加のシンボリックリンク用オプション
必須の-s以外にも、次のオプションを指定できます。
相対パスと絶対パス
シンボリックリンクを作成する際は、相対パスと絶対パスのいずれかを指定できます。
ln -sr ../myfile.txt my_link
ln -sv /home/user/document/myfile.txt my_link
ディレクトリでもシンボリックリンクの作成手順はファイルとほぼ同じです。たとえば、/home/user/documents/内のproject_filesディレクトリをホームディレクトリから参照したい場合は、次のコマンドを実行してください。
ln -s /home/user/documents/project_files /home/user/my_project
上記のコマンドを実行すると、/home/user/にproject_filesを指すmy_projectというシンボリックリンクが作成され、my_projectディレクトリに移動すればproject_filesの内容を閲覧できます。
-fオプションを付けると、同名のリンクをいったん削除してから新しいリンクを作成し、上書きできるようになります。
現在/home/user/documents/old_file.txtを指しているシンボリックリンクを、/home/user/documents/new_file.txtにリンクするよう変更する例は以下の通りです。
ln -sf /home/user/documents/new_file.txt /home/user/my_link
この場合、my_linkと同じリンク名を使用して、シンボリックリンクが新しいターゲットで正しく上書きされるようにしてください。
不要になったシンボリックリンクは、次の方法で安全に削除できます。
unlinkはシンボリックリンク削除専用のコマンドであり、ターゲットには影響せず、リンクのみを削除できます。基本構文は以下のとおりです。
unlink [link_name]
ホームディレクトリに/home/user/documents/real_file.txtを指すmy_linkという名前のシンボリックリンクがある場合、real_file.txtを削除することなく、以下のコマンドでシンボリックリンクを削除できます。
unlink /home/user/my_link
unlinkを使用する際は、末尾のスラッシュ(パス内のディレクトリ名の最後に配置されるフォワードスラッシュ(/))を追加しないでください。リンクをディレクトリとして扱い、以下の例のようにコマンドが失敗する可能性があります。
unlink /home/user/my_link/
また、unlinkコマンドはシンボリックリンクを削除する前に確認を求めないため、誤った削除を避けるため正しいシンボリックリンクを指定してください。
Linuxで通常のファイルを削除する場合と同様に、rmコマンドを使用してシンボリックリンクを削除できます。ホームディレクトリからmy_linkという名前のリンクを削除する例は以下の通りです。
rm /home/user/my_link
unlinkコマンドとは異なり、rmで-iオプションを使用すると、シンボリックリンクを削除する前に確認を求められます。
rm -i /home/user/my_link
unlinkとrmコマンドの比較
unlinkとrmのどちらのコマンドもLinuxでシンボリックリンクを削除できますが、動作が異なるため、各々別の状況に適しています。
unlinkコマンドは一度に一つのシンボリックリンクを削除するよう設計されており、インタラクションや確認のためのオプションはありません。つまり、unlinkはシンボリックリンクのみが削除されることを保証するのに特に有用です。
一方、rmは複数のシンボリックリンクを同時に処理できるため、一括削除により適しています。また、削除前に動作を確認する-iなど、いくつかのオプションがあるのも特徴的でしょう。
rmは、単一のコマンドで複数のターゲットを削除する必要がある場合や、意図しない削除が問題になる可能性がある場合に一般的に好まれる傾向があります。
シンボリックリンクを削除する際に気をつけるポイント
特にスクリプトや自動化プロセスでシンボリックリンクを削除する際は、以下のポイントに従って偶発的なファイル削除を避けましょう。
破損したシンボリックリンクは、シンボリックリンクが指すターゲットファイルやディレクトリが移動または削除されたときに発生します。スクリプトの失敗、ワークフローの中断、アプリケーションエラーなど、システムやアプリケーションでさまざまな問題を引き起こす可能性があるので注意が必要です。
破損したシンボリックリンクの検出方法
ファイルシステム内の破損シンボリックリンクを特定するには、-xtype lオプションを付けたfindコマンドを使用できます。以下の例をご覧ください。
find /path/to/search -xtype l
破損シンボリックリンクを特定したら、以下のアクションを取ることができます。
自動削除に使えるツールやスクリプト
破損シンボリックリンクの検出と修正を自動化したい場合は、以下のような役立つツールとスクリプトがあります。
symlinks -r /path/to/search
この記事では、Linuxでシンボリックリンクを作成、管理、削除する方法を学びました。シンボリックリンクを効果的に使用するには、常にターゲットパスを確認し、未使用のリンクを削除し、findやsymlinksなどのツールを使用して破損シンボリックリンクを特定してください。
シンボリックリンクは、ファイルとディレクトリを整理するための強力なツールです。シンボリックリンクをマスターすることで、ワークフローを合理化し、Linuxの管理スキルを向上させることができます。本トピックについて疑問がある場合は、下のコメント欄でご質問ください。
リンク自体にも権限は設定されますが、実際のアクセス可否はターゲット側の権限で決まります。マルチユーザー環境では、リンクを介して操作する利用者にもターゲットへの適切な権限が必要です。
元ファイルを削除するとリンクは宙ぶらりの状態になり、アクセス時にエラーが発生します。リンク自体は残るため、状況に応じて更新または削除してください。
ln -sfで同名リンクを作り直すだけで、新しいターゲットへ簡単に張り替えられます。シンボリックリンクが新しいファイルやディレクトリを指すよう効果的に変更されます。
本サイトのチュートリアルコンテンツは、 Hostingerの編集方針と価値観に基づき作成されています。