Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › Linux

Linuxでシンボリックリンクを作成・削除する方法

By Freedom251 Team · · 1 min read

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

Linuxでシンボリックリンクを作るには、ln -s TARGET LINK_NAMEを実行します。削除するときはリンク名を指定してrm LINK_NAMEまたはunlink LINK_NAMEを使います。リンクを削除しても参照先のファイルやディレクトリは削除されません。

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

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

ln -s TARGET LINK_NAME

TARGETはリンク先のパス、LINK_NAMEは新しく作るシンボリックリンクの名前です。GNU lnは通常ハードリンクを作成するため、シンボリックリンクにするには-s(長形式は--symbolic)を付けます。2つの引数を使う形式では、先にリンク先、次にリンク名を指定します。GNU Coreutilsのlnマニュアル

As an Amazon Associate I earn from qualifying purchases.

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

この例では、現在のディレクトリにmy-linkというリンクを作り、/path/to/targetを参照させます。リンク名がすでに存在する場合、通常はそのまま作成できません。

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

絶対パスと相対パスを使い分ける

シンボリックリンクは、別のファイルへのパス名を文字列として保持します。Linux man-pagesのsymlink(7)も、シンボリックリンクを「参照先ファイルのパス名を内容とする特殊なファイル」と説明しています。Linux man-pages: symlink(7)

  • 絶対パス:ファイルシステムのルートから始まります。リンクをどのディレクトリから使っても参照先が明確ですが、参照先の場所が変わるとリンク切れになります。
  • 相対パス:リンクが置かれたディレクトリを基準に解決されます。ディレクトリ構成をまとめて移動する場合に便利なことがありますが、リンクを移動すると参照先が変わったり、解決できなくなったりする場合があります。

相対パスを指定するときは、コマンドを実行した場所ではなく、リンクの親ディレクトリから参照先までの相対関係を考えます。GNU lnでは-rを使って相対リンクを作成できます。

ln -r -s TARGET LINK_NAME

シンボリックリンクはディレクトリを参照でき、別のファイルシステム上のパスも参照できます。リンク作成時に参照先が存在している必要はありません。存在しないパスを指すリンクは「ダングリングシンボリックリンク」と呼ばれます。Linux man-pages: symlink(2)

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

削除するのはリンク自体です。リンク名を引数にして、どちらかのコマンドを実行します。

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

または、1つの名前を削除するunlinkを使います。

unlink LINK_NAME

Linuxのunlink(2)はファイルシステム上の名前を取り除きます。指定した名前がシンボリックリンクなら、リンクが削除され、リンク先をたどって参照先を削除することはありません。GNUのunlinkコマンドも、指定された1つのファイル名を削除します。Linux man-pages: unlink(2) GNU Coreutilsのunlinkマニュアル

コマンドには必ずリンク名を指定してください。参照先のパスを指定して削除すると、リンクではなく参照先のファイルを削除することになります。また、ディレクトリを指すリンクを削除するときは、リンク名の末尾にスラッシュを付けないでください。末尾のスラッシュはディレクトリとして解決するよう求めることがあり、リンクそのものを削除する操作と食い違う可能性があります。

リンクが機能しないときに確認すること

  • リンク先の文字列:意図したパスが保存されているか確認します。
  • 相対パスの基準:リンクの親ディレクトリを起点に参照先をたどれているか確認します。
  • 参照先の有無:作成時に参照先がなくてもリンクは作れますが、その場合は参照先を利用できません。
  • リンクの移動:相対リンクを移動した場合、参照先との位置関係が崩れていないか確認します。
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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

ln TARGET LINK_NAMEのように-sを付けないと、GNU lnはハードリンクを作成します。シンボリックリンクはパス名を保持し、ディレクトリや別ファイルシステム上のパスを参照できます。一方、ハードリンクはファイルシステム上のファイルオブジェクトを参照するもので、作成できる対象や範囲に異なる制約があります。必要なのがパスへの参照なら、-sを忘れないようにしてください。GNU Coreutilsのlnマニュアル Linux man-pages: symlink(7)

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

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.

Linuxlnコマンドシンボリックリンクファイル管理

Leave a Reply

Your email address will not be published. Required fields are marked *

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

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.