こんにちは、
InfraAcademyというインフラ学習サービスを運営しております、ryuと申します。
今回の記事では、シンボリックリンクについて解説したいと思います。
「シンボリックリンクって何?」
「どんな動作をするの?」
「リンクと何が違うの?」
「どうやって設定すればいいの?」
といったこれらのお悩みを解決したいと思います。
- Linuxの初学者
- リンクについて理解を深めたい方
目次
シンボリックリンクとは?
シンボリックリンクとは、あるファイルやディレクトリへの場所(パス)を表す特殊な種類のファイルです。
これだけで理解できる方は少ないと思うので、もう少し丁寧に解説しますね!
シンボリックリンクは住所のメモ
シンボリックリンクは、”住所のメモ“だと考えると分かりやすいです。
例えば、あなたが誰かの家に行く必要があるとき、その人の住所を書いたメモを持っているとしましょう。
このメモは、実際の家そのものではなく、家がどこにあるかを指し示すだけです。
同様に、シンボリックリンクは実際のファイルやフォルダではなく、その場所を指し示すものです。
シンボリック(symbolic)とは?
シンボリック(symbolic)とは、「象徴的な」という意味を持つ英単語です。
「シンボリックリンク」が「symbolic」と呼ばれる理由は、リンクが「シンボル(象徴)」として機能するためです。
「シンボル」という言葉は、何かを表現するための記号や象徴として広く使われています。
例えば、地図の上に描かれた記号(シンボル)は、その場所に存在する実際の建物や道路を示しています。同様に、シンボリックリンクは、ファイルシステム上の特定の場所に存在するファイルやディレクトリを示す記号(リンク)として機能します。
このような理由で、シンボリックリンクと言われています!
シンボリックリンクの具体的な実例
ここで、シンボリックリンクの具体的な実例について考えてみましょう。
例えば、ホームディレクトリ(/home/user)に「Photos」という写真が保存されたフォルダがあったとします。ここにアクセスするには、毎回ホームディレクトリへ移動する必要があり、面倒です。
そこで、ホームディレクトリの「Photos」をデスクトップから直接アクセスできるようにしたいとします。
この場合、ホームディレクトリの「Photos」からデスクトップの「Photos」にシンボリックリンクを作成します。
すると、デスクトップのデスクトップの「Photos」にアクセスすると、ホームディレクトリの「Photos」にアクセスできるようになります。毎度ホームディレクトリからアクセスするという手間がなくなり、デスクトップから直接アクセスできるようになりました。
シンボリックリンクの設定
ここで、シンボリックリンクをそのように設定するのかについて解説します。
シンボリックリンクを設定する場合は、ln -sコマンドを使います。
ln -sコマンドの使い方
ln -sコマンドの使い方は以下の通りです。
ln -s [ターゲット] [リンク名]
ここで、[ターゲット]とは、シンボリックリンクが指し示すファイルやディレクトリのパスを指定します。リンクの元となるパスです。先ほどの例であれば、ホームディレクトリの「Photos」(/home/user/Photos)がターゲットになります。
また、リンク名は、作成するシンボリックリンクの名前とパスです。デスクトップの「Photos」にアクセスしたい場合は、/home/users/Desktop/配下にPhotosというリンク名を作成します。
つまり、先ほどの例の場合は以下のように実行します。
ln -s /home/user/Photos /home/user/Desktop/Photos
シンボリックリンクの設定確認
シンボリックリンクの設定が完了したら、設定の確認も行いましょう。
シンボリックリンクを確認するには、ls -lコマンドを使います。
ls -l /home/user/Desktop
すると、以下のように表示されます。
lrwxrwxrwx 1 user user 18 Jun 19 10:00 Photos -> /home/user/Photos
Photos -> /home/user/Photosの部分に注目してください。lsコマンドでは、デスクトップ配下のファイルを確認しているので、デスクトップのPhotosから/home/user/Photosにシンボリックリンクは作成されていることが矢印(->)で表現されています。
lsコマンドの使い方については、こちらの記事で詳しく解説しています。
関連:【Linux】lsコマンドの使い方解説【ファイルやディレクトリの情報を表示してみよう】
シンボリックリンクを変更する方法
シンボリックリンクを変更するには、既存のシンボリックリンクを削除して新しいリンクを作成しましょう!
既存のシンボリックリンクを削除して新しいリンクを作成
シンボリックリンクを削除する場合は、ファイルを削除する方法と同じです。rmコマンドを使いましょう。
rm [シンボリックリンク]
rm /home/user/Desktop/Photos
rm コマンドで削除するのはシンボリックリンクであり、リンク先のファイルやディレクトリが削除されるわけではありません。
次に、新しいリンク先を指定してシンボリックリンクを再作成します。
新しいリンク先が /home/user/NewPhotos である場合は以下のように実行します。
ln -s /home/user/NewPhotos /home/user/Desktop/Photos
シンボリックリンクの変更によりリンク先が変わるため、リンクを使用する際には新しいリンク先に正しくアクセスできることを確認しましょう。
強制的にシンボリックリンクを変更する方法
シンボリックリンクを変更する場合は、一度シンボリックリンクを削除してから、再度作成するのが一般的です。しかし、強制的に上書きする方法もあります。
その場合は、-fオプションをつけてシンボリックリンクを作成します。
#rm /home/user/Desktop/Photosは実行しない状態で
ln -fs /home/user/NewPhotos /home/user/Desktop/Photos
シンボリックリンクを削除する方法
シンボリックリンクを削除するには、先ほど紹介したrmコマンドを用いるか、unlinkコマンドを用います。
どちらも、シンボリックリンクを削除することができます。
rmコマンドを使って、シンボリックリンクを削除する場合は以下のように実行します。
rm /home/user/Desktop/Photos
unlinkコマンドを使って、シンボリックリンクを削除する場合は以下のように実行します。
unlink /home/user/Desktop/Photos
シンボリックリンクをハンズオンで学習
ここまで、シンボリックリンクについて詳しく解説してきました。
ハンズオンでLinuxを操作しながら学習したい方は、InfraAcdemyという学習サイトがおすすめです!
Linuxのシミュレーターを用いて、ブラウザでコマンドを実行しながら学習を進めます。もちろん、シンボリックリンクについてもLinuxで実行しながら学べます。
InfraAcademyで手を動かしながらLinuxのスキルを身につけましょう!一部無料でお試しできます。興味のある方はコチラ↓
まとめ
今回の記事では、シンボリックリンクについて詳しく解説しました。
シンボリックリンクは、Linuxの基礎ですが意外と理解しにくいものです。今回の記事が、みなさんの理解の助けになれば幸いです。
当ブログでは、このようなITに関する記事を発信しているので興味のある方は引き続きご覧ください。