Windowsでもシンボリックリンク「NTFS Link Ext」

こんにちは。これからまた投稿頻度が落ちると思うので、今のうちに投稿しておこうという魂胆で二日連続投稿です。
さて、皆さん知っている方も多いと思いますが、NTFSにはいろいろな機能があります(そもそもNTFSってなんだよ、という方はググれ)。
たとえば、詳細なアクセス権限を設定したり、圧縮したり、パーティションをディレクトリとしてマウントしたりできます。
しかし、その多くは非常に分かりにくいところにあったり、Windows XP HomeEditionではサポートされてなかったりします。
今日はそんな隠された機能の中から、ジャンクションとハードリンクを紹介します。

ハードリンクというのは、UNIX系OSでおなじみの、あのハードリンクです。ファイルの実体ひとつに対して複数のパスから参照できます。
ジャンクションというのはUNIX系OSでいうシンボリックリンクに近く、リンクされているファイルが消えたり変名されたりすると、迷子になってしまいます。Windowsのショートカットにも似ています。
これらは主に、深い階層にあるけど良く使うフォルダやファイルを、デスクトップやルートディレクトリなどから簡単にアクセスするために使います。
そしてNTFSでは、ハードリンクはファイル専用、ジャンクションはフォルダ専用のリンクとなっています。

ではなぜ、ショートカットがあるのにジャンクションやハードリンクが便利なのでしょうか。
たとえば、C:\from.txtからC:\aaa\bbb\ccc\ddd\\to.txtにリンクを張ったとします。

ショートカットでリンクした場合、「C:\aaa\bbb\ccc\ddd\to.txt」と書かれたC:\from.txt.lnkというファイルができます(本当はもう少し複雑なバイナリファイルのようです)。
そして、エクスプローラでこのファイルをダブルクリックすると、C:\from.txt.lnkに書いてある「C:\aaa\bbb\ccc\ddd\to.txt」という文字を読み出し、C:\aaa\bbb\ccc\ddd\to.txtへリダイレクトされます。
しかしこれはC:\aaa\bbb\ccc\ddd\to.txtであり、C:\from.txtではありません。
プログラム(この場合はメモ帳など)からはC:\aaa\bbb\ccc\ddd\to.txtとして認識されますし、多くのプログラムは直接*.lnkファイルを読むことはできません。
もちろん、C:\aaa\bbb\ccc\ddd\to.txtが移動したり、削除や変名をされたりすると、リンクは迷子になってしまいます。

一方、ハードリンクでリンクした場合、C:\aaa\bbb\ccc\ddd\to.txtというファイルがC:\from.txtというもうひとつの名前を持つことになります。
だから、プログラムからはC:\from.txtとしてアクセスできますし、変名しても問題ありません。
片方のファイルが削除されてもファイルの実体は残り、リンクされているすべてのハードリンクが削除されるとはじめて実体も削除されることになります。

さあ、ハードリンクのすばらしさがお分かりいただけたでしょうか。ちなみにジャンクションはUNIXのシンボリックリンクと同じで、ファイルの本体が移動するとリンクは切れてしまいます。
ところでこの機能はどうやって呼び出すのでしょうか。じつは、NTFSに機能が用意されているものの、Windows XPまでのNT系OSでは正式に実装されていないようです(ちなみにServer2003やVistaでは一応実装されているそうです)。

そこで使うのがこのソフト、NTFS Link Extです。ダウンロードはこちらから。NTFS Link Ext
リンク作成ツールはほかにもいろいろありますが、なぜわざわざ英語のこのソフトをお勧めするかというと、リンクされていることが分かりやすいからです。
このソフトの場合、ジャンクションには緑色の、複数の名前を持つハードリンクには黄色のショートカットマークがつきます。
そして、ジャンクションを削除しようとしてもリンク先のフォルダ中のファイルが消えることが無く、安全にアンリンクできます。
また、ジャンクションされているフォルダおよびその上位のフォルダを移動したり削除したりしようとすると、確認ダイアログが出てきてリンク切れの恐れがあることを教えてくれます。
複数の名前を持つハードリンクの場合は、各ファイル(上の例ではC:\aaa\bbb\ccc\ddd\to.txtとC:\from.txtの両方)に黄色いショートカットマークがつくので、どこかに同じ実体を持つファイルがあることが一目で分かります。

どうでしたか。久しぶりに長々とした分かりにくい紹介でしたが、自己満足だから関係ありません。
ちなみに、分かりにくいという人や、NTFSの機能をもっと知りたいという人は、自分で調べてくださいな。

2011/11/23以前 | comments (0) | trackbacks (0)

コメント

コメント投稿






トラックバック