Windowsでシンボリックリンクを設定する方法

Pocket

1.シンボリックリンクを作成する準備

シンボリックリンクを作成できるのは、NTFSフォーマットのドライブとなります。FATでは作成できません。また、管理者権限が必要になります。

フォーマット形式は「ディスクの管理」画面で確認できます。

win42-2

シンボリックリンクを作成するには、管理者権限で立ち上げた「コマンドプロンプト」を利用します。管理者権限の「コマンドプロンプト」を起動する方法はWindowsのバージョンによって異なります。

Windows7以前のバージョンは「windows」キーを押しながら「R」キーを押して、「ファイル名を指定して実行」の「名前」に「cmd」と入力して「Ctrl」キーと「Shift」キーを押しながら「Enter」キーを押します。

Windows8以降では、「Windows」キーを押しながら「X」キーを押して、表示されたメニューから「コマンドプロンプト(管理者)」を選択します。

Windows10でメニューの「コマンドプロンプト」を「Windows PowerShell」に変更している場合は、「windows」キーを押して、「cmd」とキー入力して「Ctrl」キーと「Shift」キーを押しながら「Enter」キーを押します。

管理者権限の「コマンドプロンプト」はウィンドウのタイトルが「管理者:コマンドプロンプト」と表示されます。

2.リンクの種類と特徴

リンクを作成するコマンドは「mklink」です。「mklink」と打ち込んで「Enter」キーを押すと、書式とオプションが表示されます。

win42-b

シンボリックリンクは、ファイルにもフォルダにもリンクが貼れます。「/d」オプションをつけると、ディレクトリへのシンボリックリンクとなります。

ハードリンクは、シンボリックリンクとは少し性質が異なります。一つの実体ファイルに対して、別名を付けるイメージです。ハードリンクと元々のファイル名は同列です。ハードリンクを作成して、元ファイルを削除しても、ハードリンクが実態を持ったファイルとして残ります。ハードリンクを作成できるのはファイルだけで、フォルダには作成できません。

ディレクトリジャンクションはフォルダへのシンボリックリンクに似ていますが、ネットワークを介した時などに違いが出ます。ネットワーク上の他のマシンの共有フォルダに対してジャンクションは作成できませんが、シンボリックリンクは作成できます。逆に、ジャンクションを設定したフォルダを共有設定すると、ネットワーク上の他のマシンからもジャンクションとして利用できますが、シンボリックリンクだと他のマシンから確認できません。

ディレクトリジャンクションとシンボリックリンクはハードリンクに対してソフトリンクと呼ばれています。

3.シンボリックリンクを作成する

ファイルにシンボリックリンクを貼るには「mklink リンク名 ターゲットファイル」です。「linktest\linktest.txt」にリンク名「symbol」としてシンボリックリンクを貼るには「mklink symbol linktest\linktest.txt」となります。

同様にディレクトリにシンボリックリンクを貼るには「mklink /d リンク名 ターゲットフォルダ」となります。「linktest」フォルダにリンク名「symbold」としてシンボリックリンクを貼るには「mklink /d synbold linktest」となります。

ファイルにハードリンクを貼るには「mklink /h リンク名 ターゲットファイル」です。「linktest\linktest.txt」にリンク名「hardlink」としてハードリンクを貼るには「mklink /h hardlink linktest\linktest.txt」となります。

ディレクトリにジャンクションを作成するには「mklink /j リンク名 ターゲットフォルダ」です。「linktest」フォルダにリンク名「junction」としてジャンクションを作成するには「mklink /j junction linktest」となります。

「dir」でリストを表示すると、各々のリンクの違いが表示されますが、ハードリンクだけは通常のファイルと同様に表示されます。

win42-c

シンボリックリンクはWindows Vistaから利用できるようになりました。つまり、新機能なのです。WindowsのGUIは良くできていますが、まだまだコマンドラインから利用したほうが便利な場合もあります。そんな時にはシンボリックリンクを活用してみてください。

コメントを残す

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