2024年5月2日
2024年5月2日
共通点
- ソフトリンクである
- ファイルやディレクトリを関連付けられる
- リンクを削除しても関連付けられたファイルやディレクトリは削除されない
- 関連付けられたファイルやディレクトリが削除されている状態でリンクにアクセスするとエラーが発生する
相違点
- ディレクトリが関連付けられている場合に、cdコマンドの引数にそのリンクを指定してリンク先に移動できるかどうか
- ショートカットの場合
- cdコマンドの引数にショートカットを指定するとエラーが発生する
- シンボリックリンクの場合
- cdコマンドの引数にシンボリックリンクを指定すると関連付けられたディレクトリに移動できる
- UNIX系OSではcdコマンドの-Pオプションを指定することでシンボリックリンクに関連付けられたディレクトリに移動できる
- ショートカットの場合
- 関連付けられたファイルやディレクトリを追従できるかどうか
- ショートカットの場合
- 追従できる
- シンボリックリンクの場合
- 追従できない
- ショートカットの場合
そもそもリンクとは何か
リンクは、ファイルやディレクトリなどのオブジェクトが関連付けられたファイルです。リンクを使うことでオブジェクトが管理しやすくなります。
リンクの種類
ソフトリンク
ファイルやディレクトリのパスを指し示すファイルです。異なるファイルシステム上に存在するファイルやディレクトリを関連付けられます。
シンボリックリンク
主にUNIX系OSで使われるソフトリンクです。ファイルやディレクトリを参照できます。参照先を追従できません。
ショートカット
Windowsで使われるソフトリンクです。ファイルやディレクトリを参照できます。参照先を追従できます。
ジャンクション
Windowsで使われるソフトリンクです。ディレクトリのみを参照できます。参照先を追従できません。
エイリアス
macOSで使われるソフトリンクです。ファイルやディレクトリを参照できます。参照先を追従できます。
ハードリンク
パスを使わずにファイルを直接参照するファイルです。ファイルを直接参照する際はinodeなどのファイルやディレクトリを表すデータ構造を参照します。それぞれのファイルシステムにおいて、このデータ構造ごとに一意の番号が割り振られており、ハードリンクはこの番号を利用してファイルを直接参照します。そのため、ハードリンクがあるファイルシステムと異なるファイルシステム上にあるファイルは、ハードリンクで適切に参照できません。このような理由から、ファイルシステムを跨いだハードリンクは作成できない仕様になっています。