Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Linuxでシンボリックリンクを作るには、ln -s TARGET LINK_NAMEを実行します。削除するときは、リンク名を指定してrm LINK_NAMEまたはunlink LINK_NAMEを使います。どちらの削除方法も、リンク先ではなくシンボリックリンク自体を取り除きます。

シンボリックリンクを作成する

基本のコマンドは次のとおりです。

ln -s TARGET LINK_NAME

たとえば、/path/to/targetを指すmy-linkを作成するには、次のようにします。

ln -s /path/to/target my-link

2つの引数の順番に注意してください。最初のTARGETがリンク先のパス、2番目のLINK_NAMEが新しく作るリンクの名前です。通常、リンク名はまだ存在していない必要があります。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

GNUのlnは、オプションを付けない場合はハードリンクを作成します。シンボリックリンクにするには-s(長い形式は--symbolic)を指定します。GNU Coreutilsのlnマニュアル

絶対パスと相対パスを選ぶ

シンボリックリンクには、リンク先のパス文字列が保存されます。絶対パスはファイルシステムのルートから始まり、リンクをどのディレクトリから参照するかに左右されません。相対パスは、リンクが置かれているディレクトリを基準に解釈されます。Linuxのマニュアルでは、シンボリックリンクを「別のファイルのパス名である文字列を内容に持つ特別な種類のファイル」と説明しています。Linux man-pagesのsymlink(7)

  • 絶対パス: リンク先をルートから指定するため、場所を把握しやすい一方、リンク先のディレクトリ構成が変わると機能しなくなることがあります。
  • 相対パス: リンクとリンク先を含むディレクトリツリーを一緒に移動する場合に便利ですが、リンクの配置場所に依存します。リンクを移動すると、リンク先を解決できなくなることがあります。

GNU lnでは、-rを-sと組み合わせると、相対リンクを作成できます。

ln -r -s TARGET LINK_NAME

相対パスを手で指定する場合は、リンクの置き場所からリンク先までの経路を考えます。基準になるのは、コマンドを実行した現在のディレクトリではなく、リンクの親ディレクトリです。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

シンボリックリンクを安全に削除する

削除する引数には、リンク先ではなくシンボリックリンクの名前を指定します。

rmで削除する

rm LINK_NAME

例:

rm my-link

unlinkで削除する

unlink LINK_NAME

unlinkは指定した1つのファイル名を削除するコマンドです。Linuxでは、シンボリックリンクの名前を削除するとリンク自体が取り除かれ、リンク先のファイルやディレクトリは削除されません。Linux man-pagesのunlink(2) GNU Coreutilsのunlinkマニュアル

リンク先を誤って指定しないよう、実行前にコマンドの引数がリンク名であることを確認してください。ディレクトリを指すリンクを削除するときも、リンク名の末尾にスラッシュを付けないでください。末尾のスラッシュはディレクトリとして解決するよう求める形になり、リンクそのものを指定する場合と異なる動作につながることがあります。

リンクが壊れて見えるとき

シンボリックリンクは、作成時にリンク先が存在している必要はありません。そのため、存在しないパスを指すリンクも作成でき、この状態は「宙ぶらりん(dangling)」リンクと呼ばれます。Linux man-pagesのsymlink(2)

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

リンク先が見つからないときは、保存されたパス文字列とリンクの置き場所を確認します。特に相対リンクでは、リンクの親ディレクトリを基準にパスが正しいかを確かめてください。リンク先のファイルやディレクトリを削除した場合や、リンクを移動した場合にも、リンクが解決できなくなることがあります。

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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

どちらもファイル名から対象へアクセスするために使えますが、仕組みは異なります。シンボリックリンクはリンク先のパスを文字列として保持し、ディレクトリや別のファイルシステム上のパスも指せます。ハードリンクは同じファイルオブジェクトを参照する別の名前です。GNU lnではハードリンクが既定のため、シンボリックリンクを作るときは-sを忘れないでください。GNU Coreutilsのlnマニュアル Linux man-pagesのsymlink(7)

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.