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が新しく作るリンクの名前です。通常、リンク名はまだ存在していない必要があります。
GNUのlnは、オプションを付けない場合はハードリンクを作成します。シンボリックリンクにするには-s(長い形式は--symbolic)を指定します。GNU Coreutilsのlnマニュアル
#1 Best Overall
絶対パスと相対パスを選ぶ
シンボリックリンクには、リンク先のパス文字列が保存されます。絶対パスはファイルシステムのルートから始まり、リンクをどのディレクトリから参照するかに左右されません。相対パスは、リンクが置かれているディレクトリを基準に解釈されます。Linuxのマニュアルでは、シンボリックリンクを「別のファイルのパス名である文字列を内容に持つ特別な種類のファイル」と説明しています。Linux man-pagesのsymlink(7)
- 絶対パス: リンク先をルートから指定するため、場所を把握しやすい一方、リンク先のディレクトリ構成が変わると機能しなくなることがあります。
- 相対パス: リンクとリンク先を含むディレクトリツリーを一緒に移動する場合に便利ですが、リンクの配置場所に依存します。リンクを移動すると、リンク先を解決できなくなることがあります。
GNU lnでは、-rを-sと組み合わせると、相対リンクを作成できます。
ln -r -s TARGET LINK_NAME
相対パスを手で指定する場合は、リンクの置き場所からリンク先までの経路を考えます。基準になるのは、コマンドを実行した現在のディレクトリではなく、リンクの親ディレクトリです。
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →シンボリックリンクを安全に削除する
削除する引数には、リンク先ではなくシンボリックリンクの名前を指定します。
Rank #3
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)
リンク先が見つからないときは、保存されたパス文字列とリンクの置き場所を確認します。特に相対リンクでは、リンクの親ディレクトリを基準にパスが正しいかを確かめてください。リンク先のファイルやディレクトリを削除した場合や、リンクを移動した場合にも、リンクが解決できなくなることがあります。
Best Value
シンボリックリンクとハードリンクの違い
どちらもファイル名から対象へアクセスするために使えますが、仕組みは異なります。シンボリックリンクはリンク先のパスを文字列として保持し、ディレクトリや別のファイルシステム上のパスも指せます。ハードリンクは同じファイルオブジェクトを参照する別の名前です。GNU lnではハードリンクが既定のため、シンボリックリンクを作るときは-sを忘れないでください。GNU Coreutilsのlnマニュアル Linux man-pagesのsymlink(7)
Quick Recap
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.

