第104回で簡単に触れたように、Windowsには「ジャンクション」と呼ばれるソフトリンクが存在する。ジャンクションを利用すれば、GUI操作では実現できないようなフォルダー構成を実現することも可能だ。そこで今回は、ハードリンクやソフトリンクの概要と、ジャンクションを利用した応用例を1つ紹介する。
「Windows 8.1ミニTips 第17回」より、2014年4月9日にリリースされたWindows 8.1 Updateを適用した環境を対象としています。
ハードリンクとソフトリンクとは
一般的なOSは、ファイルの実体となるデータ領域にアクセスするためのリンク機能を備えている。語弊はあるが単純にいうと、ファイルの実体そのものに複数の名称を付ける「ハードリンク」や、ファイルやディレクトリに対して別名のアクセス経路を設定する「ソフトリンク」に大別される。このうちハードリンクは、Windows NT 3.1時代からサポートしていた。
ソフトリンクに類するジャンクションやシンボリックリンクは、実装時期の相違や機能的な長短がある。そのため、古いアプリケーションでは誤認識するケースもあるので、あらかじめ注意してほしい。まずはジャンクションとシンボリックリンクの違いについて述べよう。
ジャンクションとシンボリックリンクの違い
ジャンクションはWindows 2000からサポートした機能で、一般ユーザーでも気軽に使用できる。一方のシンボリックリンクはWindows Vista以降でサポートし、相対パスや共有フォルダーのリンクも作成できるが、管理者権限が必要だ。いずれも「mklink」コマンドで作成できる。
ここで1つ例を紹介しよう。通常のコマンドプロンプトを起動し、ディレクトリ「foo」に対するシンボリックリンクを作成するため「mklink /d bar foo」と実行する。しかし、下図のように管理者権限が必要な旨を示すエラーメッセージが現れるだけだ。
一般ユーザー権限で実行する場合、「mklink /j bar foo」と実行してディレクトリジャンクションを作成しなければならない。もちろん管理者権限を持つコマンドプロンプトであれば、ディレクトリのシンボリックリンクは作成できる。
ジャンクションとシンボリックリンクは視覚的にも相違点が多い。コマンド「dir」で確認すると、ジャンクションは「<JUNCTION>」、シンボリックリンクは「<SYMLINKD>」と現される(ファイルに対するシンボリックリンクは「<SYMLINK>」)。
前回も述べたようにエクスプローラー上で開くと、一見しただけではジャンクションなのか、シンボリックリンクなのかも判断できない。だが、プロパティダイアログを確認するとシンボリックリンクに関しては「ショートカット」タブが加わる仕組みだ。
リンク機能でOneDriveフォルダーに加える
このような手順でジャンクションやシンボリックリンクを作成できるが、ポイントはその使い方である。例えば筆者は、普段の作業内容をドキュメントフォルダー下の特定フォルダーに格納しているが、困るのが外出先で作業を続行するケースだ。
もちろんOneDriveフォルダー(%USERPROFILE%\SkyDrive)下に作業フォルダーを移動させれば済む話だが、過去の資料などを含めると数百GB(ギガバイト)あっても足りず、ISPのアップロード制限も気になってしまう。
そこでおすすめしたいのが、作業中のフォルダーだけをOneDriveフォルダーのジャンクション/シンボリックリンクとして作成する方法だ。下図では「%USERPROFILE%\Documents\Work」フォルダーのジャンクションをOneDriveフォルダーに作成している。
ジャンクションターゲットがあるフォルダーに移動し、ジャンクションを作成する。画面の例では「mklink /j %USERPROFILE%\SkyDrive Work」と実行しているため、「ドキュメント\Work」フォルダーのジャンクションをOneDriveフォルダーに作成した |
ファイルの追加や更新時にはデータのアップロードが発生するため、ネットワークトラフィックは増加してしまうが、職場や自宅で作業中の内容を外出先でも編集したい方は試してみてほしい。
阿久津良和(Cactus)