シンボリックリンクはショートカットじゃない

シンボリックリンクとショートカットの共通点と相違点をまとめました

目次

インスタンスを入力🐘

投稿日: 2024年5月2日

最終更新日: 2024年5月2日

共通点

  • ソフトリンクである
  • ファイルやディレクトリを関連付けられる
  • リンクを削除しても関連付けられたファイルやディレクトリは削除されない
  • 関連付けられたファイルやディレクトリが削除されている状態でリンクにアクセスするとエラーが発生する

相違点

  • ディレクトリが関連付けられている場合に、cdコマンドの引数にそのリンクを指定してリンク先に移動できるかどうか
    • ショートカットの場合
      • cdコマンドの引数にショートカットを指定するとエラーが発生する
    • シンボリックリンクの場合
      • cdコマンドの引数にシンボリックリンクを指定すると関連付けられたディレクトリに移動できる
      • UNIX系OSではcdコマンドの-Pオプションを指定することでシンボリックリンクに関連付けられたディレクトリに移動できる
  • 関連付けられたファイルやディレクトリを追従できるかどうか
    • ショートカットの場合
      • 追従できる
    • シンボリックリンクの場合
      • 追従できない

そもそもリンクとは何か

リンクは、ファイルやディレクトリなどのオブジェクトが関連付けられたファイルです。リンクを使うことでオブジェクトが管理しやすくなります。

リンクの種類

ソフトリンク

ファイルやディレクトリのパスを指し示すファイルです。異なるファイルシステム上に存在するファイルやディレクトリを関連付けられます。

シンボリックリンク

主にUNIX系OSで使われるソフトリンクです。ファイルやディレクトリを参照できます。参照先を追従できません。

ショートカット

Windowsで使われるソフトリンクです。ファイルやディレクトリを参照できます。参照先を追従できます。

ジャンクション

Windowsで使われるソフトリンクです。ディレクトリのみを参照できます。参照先を追従できません。

エイリアス

macOSで使われるソフトリンクです。ファイルやディレクトリを参照できます。参照先を追従できます。

ハードリンク

パスを使わずにファイルを直接参照するファイルです。ファイルを直接参照する際はinodeなどのファイルやディレクトリを表すデータ構造を参照します。それぞれのファイルシステムにおいて、このデータ構造ごとに一意の番号が割り振られており、ハードリンクはこの番号を利用してファイルを直接参照します。そのため、ハードリンクがあるファイルシステムと異なるファイルシステム上にあるファイルは、ハードリンクで適切に参照できません。このような理由から、ファイルシステムを跨いだハードリンクは作成できない仕様になっています。