ソフトリンク

ソフトリンク  は、コンピュータのディスク上で扱うファイルやディレクトリを、本来の位置にファイルを残しつつそれとは別の場所に置いたり別名を付けてアクセスする手段である。複製とは違い、実体がないこと、ソフトリンクで開いたファイルへの操作が実物のファイルにも反映されること、ファイルサイズが小さいのが特徴。

実際には、各種OSによって名称も異なっており、それぞれ、

Microsoft Windows - ショートカット
Mac OS - エイリアス
UNIX - シンボリックリンク
NTFSを搭載したWindows - ジャンクションと呼ばれるものがこれに相当する。なお、macOSではエイリアスに加えてシンボリックリンク、Windows Vista以降はジャンクションに加えてシンボリックリンクにも対応している。Windowsのジャンクションやシンボリックリンクは、リパースポイントと呼ばれる機能によって実現されている。仕様にも若干の違いが見られる。

ソフトリンクはリンク先のファイルを指し示しているだけの存在であるが、これへアクセスするとリンク先のファイルが操作される。つまり、ディスク内のある場所にあるファイルを、あたかも別の場所にもあるがごとく扱えるのである。これは、ファイルを整理した際に、ディレクトリの奥深くに埋もれてしまったファイルをデスクトップなど手近な場所からアクセスするのに便利になる。

ソフトリンクは、リンクを削除してもオリジナルは消滅しない。逆に、オリジナルを削除するとソフトリンクは無効なものになってしまう。

1. 各OSでのソフトリンク
--------------

1.1. Windows
------------

Windowsのショートカットは、フォルダやファイルを指し示すという本来のソフトリンクの機能の他、コントロールパネルの設定項目などファイルでないものも指し示すことができるようになっている。なお、リンク先のファイルが移動された場合にはショートカットは追従できず、無効なリンクになる。

Windows 2000以降のDistributed Link Trackingサービスを有効にした環境では、ファイルにオブジェクトIDという一意なIDが振られ、Windowsドメイン内のNTFSボリューム上である限り、どこに移動しても確実に追跡できる。

Windows 2000で採用されたNTFS 3.0以降では、ファイルシステムにリパースポイントという機能が追加され、これによってジャンクションが、さらにWindows Vista以降ではシンボリックリンクが利用可能になった。ジャンクションはフォルダへのソフトリンクであり、宛先が書かれたファイルに過ぎないショートカットとは異なり、コマンドラインからも実フォルダや実ドライブと同じ取り扱いが可能となる。シンボリックリンクはジャンクションをさらに発展させ、相対パスでのリンクやネットワークパスでのリンク作成も可能となっている。Windows Vista以前はリパースポイントを扱うコマンドが標準で装備されていなかったが、Windows Vista以降は「mklink」コマンドによって作成可能となっている。

ショートカットファイルの拡張子はLNKであるが、MS-DOSプログラムへのショートカットは拡張子PIFの特別なファイル形式となる。またWindows 98以降ではショートカットを新規作成するウィザードでパスの代わりにURLを入力するとインターネット ショートカットが作成される。

ジャンクションフォルダを他のフォルダに移動する操作を行うと、フォルダ内のデータがリンク元フォルダから移動されることになる。すなわち、ジャンクションフォルダ及びリンク元フォルダからはデータが移動され、入れ物としてのジャンクションフォルダ及びリンク元フォルダは空の状態で残る。 一方、シンボリックリンクフォルダを他のフォルダに移動する操作を行うと、リンク自体の移動となる。すなわち、シンボリックフォルダへのパスが変更されるのみで、シンボリックフォルダ及びリンク元フォルダには依然としてデータは存在したままとなる。

1.2. Mac OS
-----------

Mac OSのエイリアスはほかのOSよりも進んでいて、エイリアスレコードと呼ばれる、ファイル固有の参照情報を保存することでリンク先ファイルが移動されたりファイル名が変更されても自動的に移動先に追従し、常に有効性を保つ。フロッピーディスクへのリンクの場合などは、ネットワーク上のコンピュータのどれかに挿入されていればそれを探知して開くことまでできる。リンク先のファイルがゴミ箱やアプリケーションパッケージ、挿入されていないリムーバブルメディアに入っていたり、削除されているとリンクが切れる。ちなみにこのエイリアスレコードは必ずしもエイリアスファイルとして単一ファイルにする必要がなく、アプリケーションが独自にレコードを保持しても構わない。

Classic OSでは、記憶しておく必要のあるファイル情報はエイリアスレコードで保持するのが一般的で、編集中のファイルを移動してもそれを追従し、エラーとして扱ったり、ファイルを開いた時点での場所に再度ファイルを作成したりせず移動先に正常に保存できるといったような、極めて自由度の高いファイル処理を行なっていた。なお、macOSでは、このような自由度の高いファイル処理は、旧来のOSの機能を持つ、FinderやCarbon、Classicアプリケーションのような一部の例外を除いて機能しない。

なお、WindowsでもファイルIDでファイルを参照することは可能である。これは主にServices for MacintoshにおいてMacintoshのサーバとして機能するためであり、それ以外の目的ではあまり積極的に使われていない。

1.3. UNIX
---------

UNIXのシンボリックリンクは実体へのファイルパスだけを保存しているため、Windowsのショートカットと同じくリンク先ファイルの移動には追従できないが、これは存在しないファイルパスを保持するリンクが存在できるという意味でもある。シンボリックリンクの作成は「ln」コマンドに「-s」オプションを付けて実行することで行う。

NEWS-OSは、環境変数やカーネル変数によってシンボリックリンクのリンク先を自動的に変化させる Conditional Symbolic Link と呼ばれる機能を持っていた。環境変数に応じて、リンク先が切り替えられた。NEWS-OS では、カーネル内に Conditional Symbolic Link を処理するロジックが加えられていた。

1.4. BTRON
----------

BTRONの『仮身』は概念上ソフトリンクに相当する。ただし、ユーザが直接ファイル本体である『実身』に触れる事はできない。仮身は仮想ファイルアイコンとして自由に複製できるがすべて削除する事はファイル本体の削除と同義となる。つまり全てが仮身を通してのみアクセスされる点が他のOSと異なる。また仮身はOSの基本構成要素であり、テキスト・計算表・データベースなどBTRON OSで編集可能なファイルのあらゆる場所に付箋様の形で埋め込む事ができる。この仕組みによって、ごくふつうのファイル操作や編集がそのままハイパーリンク編集になるというユーザインタフェースを実現している。

2. 関連項目
-------

ハードリンク
ブラウザハイジャッカー:ウェブブラウザのショートカットを書き換えるマルウェア

3. 脚注
-----