SysinternalsのアプリケーションJunctionでシンボリックリンクを作成する

Windows XPでシンボリックリンクシンボリックリンクに非常によく似た機能を作成する方法です。JunctionっていうSysinternalsで提供されているアプリケーションを使って今回はやってみましょう。
ジャンクションはとても便利ですので、この機会に是非覚えてみてください。

シンボリックリンクって何ですか?

あるファイルやディレクトリに別の名前を与え、ユーザやアプリケーションがその名前をファイル本体と同様に扱えるようにする仕組み。UNIX系OSのファイルシステムの機能として定着している。

 UNIXでは「ln」コマンドでシンボリックリンクを作成することができ、ファイルシステム上にはリンク情報が格納された0バイトのファイルが出現する。元のファイルを扱うのと同じ感覚でシンボリックリンクと通してファイルやディレクトリにアクセスすることができる。

 似た機能に「ハードリンク」がある。シンボリックリンクはデバイスやファイルシステムにまたがって自由にリンクを張ることができるが、ハードリンクではファイルシステムを管理するファイルエントリに複数の名前を登録するため、異なるファイルシステムへリンクできないなどの制限がある。ハードリンクでは実体ファイルの削除ができるが、シンボリックリンクを通じて実体を削除することはできない。

 ファイルやディレクトリに仮想的な別の名前を与えるという点ではWindowsの「ショートカット」やMac OSの「エイリアス」に近いが、これらはリンク先のファイルを実体と同じようには扱えないため、実装や機能の面では大きく異なる。
e-wordより転載

簡単に言えばショートカットの親戚みたいなものです。ただ、ショートカットと違って仮想的にですが実際に存在するディレクトリのように扱う事が出来ます。

こういう機能って使い所が難しかったりするんですが、例えばHTTPやFTPサイトを公開する場合や、必ずCドライブにログが溜まってしまうアプリケーションなんかを対応しなきゃいけないけどCドライブはもう容量的に無理が・・・なんて場合にすごく便利です。

Junctionの使い方

使い方はすごく簡単です。
まず、ここからJunctionをダウンロードして、適当なディレクトリにJunctionを展開して実行してください。
CUIアプリケーションなんでコマンドプロンプトから開いてくださいね。

で作成出来ます。例えば実在するディレクトリ

シンボリックリンクジャンクションを

に作成したい場合には

と入力して実行すればOKです。

に新しく”test2″というディレクトリが作成されているはずです。

上記のようにディレクトリを作成した場合、試しに”test”の中に”hogehoge.txt”を作成してみてください。作成したら”test2″にアクセスしてみましょう。”test”に作成した”hogehoge.txt”が”test2″にアクセスしても参照できるはずです。同じように”test2″の中の”hogehoge.txt”を削除してみると、”test”の”hogehoge.txt”も削除されてしまいます。

どちらのディレクトリに対して変更を加えても結局参照先が同じなのでどちらに対しても変更が加えられるんですね。

こんな感じで物理的な容量の都合で参照先を変更しなければならない時や、HDD上に散らばるディレクトリをまとめたい時に非常に活用出来ます。

逆にシンボリックリンクジャンクションを削除する場合には

とコマンドプロンプトに入力して実行します。

シンボリックリンクジャンクションに設定したディレクトリはそのままエクスプローラ上から削除することも可能ですが・・・、まあその辺はこの下の注意点で。

Junctionの注意点

Junctionにはオプションで”-d”を使う事により安全にシンボリックリンクジャンクションを削除する機能があります。”安全に”って言葉結構気になりませんか?普段意識しない点なんですが、Junctionで作成したディレクトリをうっかり消してしまうと参照元のファイルも全て削除する事になってしまうわけです。

例えばデスクトップ上に”C:\mp3″のシンボリックリンクを作成し、デスクトップ上のシンボリックリンクジャンクションを削除すると”C:\mp3″の中身も全て消えてしまいます。シンボリックリンクジャンクションを削除する場合には気をつけるようにしましょう。

補足

kureさんの指摘でジャンクションとシンボリックリンクの曖昧な部分をジャンクションに統合しました。

ジャンクション、シンボリックリンク等については、以下のサイトに非常に詳しく記載されています。

リンク/ジャンクション作成ツール

2 COMMENTS

pnpk

なるほど、詳しい説明サイトのリンクありがとうございました。

自分の場合もインターネットで勉強させてもらう機会がとても多いので、
誤った知識や誤った解釈を行っている部分結構あるかもしれません。

紹介いただいたサイト拝見させていただき、
ジャンクションとシンボリックリンクについて再確認してみたいと思います。

ありがとうございました。
今後ともよろしくお願いします。

kure

ジャンクションとシンボリックリンクは正確には違うらしい。
http://homepage1.nifty.com/emk/symlink.html
このサイトが詳しかった。

WindowsVistaだとシンボリックリンクが標準で実装されているらしいけど、XPはされてないから不便だね・・・。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です