| [System Environment] | |||||||||||
Windows Vista/Windows Server 2008でシンボリック・リンクを作成する
|
|||||||||||
|
|||||||||||
| 解説 |
TIPS「ファイルへの別名を割り当てるハードリンクを作成する」では、ハードリンクを作成する方法を紹介した。Windows OSのハードリンクは、Windows 2000といった従来のOSで利用できる反面、同一ボリューム上に存在するファイルにしかリンクが張れないという制約があった。フォルダへのリンクは張れないし、ほかのサーバやほかのボリューム上に存在するファイルへリンクを張ることもできない。
TIPS「ジャンクション機能を使ってディスク・ボリュームをマウントする」では、NTFSのジャンクション(リパース・ポイント)機能を使ってボリュームやフォルダをマウントする機能を紹介したが、やはり別のサーバ上のボリュームや共有フォルダなどへリンクを張ることはできない。
これらに対し、Windows VistaやWindows Server 2008では、より柔軟性の高い「シンボリック・リンク」機能(「ソフト・リンク」ともいう)がサポートされている。これはUNIXやLinuxなどで使用されているシンボリック・リンクとほぼ同等の機能を持っている。ローカルのファイルやフォルダはもちろん、リモートのサーバ上の共有フォルダやファイルに対してもリンクを張ることができる。ただし、リンクする先がファイルかフォルダかによって、リンクの作成方法に少し異なる。本TIPSでは、Windows VistaやWindows Server 2008におけるシンボリック・リンクの作成方法について解説する。
なお、シンボリック・リンクの機能をまとめておくと次のようになる。
-
シンボリック・リンクとは、リンク先を指すためのいわばショートカットである。リンク先は、ローカルのファイルやフォルダに限らず、リモートのサーバ(共有フォルダ)中のファイルやフォルダでもよい。ただしジャンクション(リパース・ポイント)のように、ボリュームへリンクすることはできない。
-
ファイルやフォルダにシンボリック・リンクを張ると、通常のファイルやフォルダのように内容を確認したり、移動先として利用できる。ただしコマンドによっては(特に従来のOS上のコマンドなど)、リンクを正しく解釈できないことがあるので注意(例えばlink.txtがシンボリック・リンクの場合、「more < link.txt」は動作するがなぜか「more link.txt」は動作しない)。
-
シンボリック・リンクはWindows VistaやWindows Server 2008で利用できる。ただしNTFSボリュームが必要。
-
存在しないファイルやフォルダ名へのシンボリック・リンクを作成してもよい。シンボリック・リンクはオープン時(実際に使用されるとき)に解釈されるため、リンクの作成時にリンク先が存在しているかどうかは関係ない。実際にアクセスされるときにリンク先があればよい。
-
リンク先のファイルやフォルダが常に存在している必要はない。リンク先のファイルやフォルダを削除すると、アクセス先が不明なリンクとしてそのまま残り、そのようなリンクを開こうとするとエラーになる(ハードリンクの場合は、最後のリンクがなくなった時点で、ファイルの実体が削除される)。
-
リンク先は絶対パスでなく、相対パスでもよい(例:「..\..\master.doc」へのリンクなど)。ただし相対パスを持つリンクを移動させると、リンク先が不明になることがあるので注意。
| 操作方法 |
mklink.exeコマンドでシンボリック・リンクを作成する
Windows VistaやWindows Server 2008でシンボリック・リンクを作成するには、まず管理者権限のあるコマンド・プロンプトを開き(TIPS「Windows Vistaでプログラムを管理者モードで実行する」参照)、mklink.exeコマンドを実行する。
C:\>mklink …使い方を表示させる |
mklinkの引数は、作成するリンク名と、リンク先のファイル/フォルダ名である。作成するリンクの種類によって、/Dや/H、/Jなどのオプションを指定する。オプション指定を省略すると、ファイルへのリンクの作成となる。
なおシンボリック・リンクを作成するには、Windows Vista以降で新しく導入された「シンボリック リンクの作成」というユーザー権利が必要である(ユーザーの権利は[管理ツール]の[ローカル セキュリティ ポリシー]などで設定/確認できる)。デフォルトではAdministratorsグループにのみ、この権利が割り当てられている。
ファイルへのシンボリック・リンクを作成する
ファイルに対するシンボリック・リンクを作成するには、mklinkコマンドに作成するリンク名とリンク先のファイル名を指定すればよい。
C:\Data>mklink mycmd.exe c:\Windows\System32\cmd.exe …cmd.exeに対するリンク |
ファイルに対するシンボリック・リンクには「<SYMLINK>」という属性が表示されている。また続く[]内に、リンク先のファイルのパスが表示されている(これはWindows Vista以降のコマンド・プロンプトにおける拡張機能)。ローカルのファイルだけでなく、リモートのファイル・サーバ上のファイルに対してもリンクを張ることができる。
フォルダへのシンボリック・リンクを作成する
フォルダに対するシンボリック・リンクを作成するには、/dオプションを使用する。
C:\Data>mklink /d picfolder2 c:\Users\hiroy-u\Pictures …ローカルのフォルダへのリンク |
フォルダへのリンクの場合は「<SYMLINKD>」という属性が表示される。フォルダに対し、間違ってファイルのへのリンクを作成すると(/dオプションを付け忘れると)、例えばcdコマンドがエラーになり、カレント・フォルダを変更できない。
シンボリック・リンクの削除
シンボリック・リンクは通常のファイルやフォルダと同じなので、例えばエクスプローラ上で削除操作を行うと、そのリンクが削除される(リンク先が削除されるわけではない)。コマンド・プロンプト上で作業する場合は、ファイルへのリンクの削除ならdelコマンド、フォルダへのリンクの削除ならrdである(フォルダへのリンクをdelで削除しようとすると、そのフォルダの中のファイルが削除されてしまうので注意)。
エクスプローラにおけるリンク先の表示
シンボリック・リンクなどのリンク先をエクスプローラで確認するには、[リンク先]という表示項目を新しく追加する必要がある。エクスプローラの項目名のバーを右クリックしてポップアップ・メニューから[その他]を選択するか、[表示]メニューの[詳細表示の設定]を選択し、[詳細表示の設定]ダイアログで[リンク先]というチェック・ボックスをオンにする。すると次のように、リンク先の情報が表示される。
SFUによるシンボリック・リンクのサポート
SFU(Microsoft Windows Services for UNIX)は、Windows OS上でUNIX互換環境を実現するシステムであるが、これに含まれるlnコマンドを使えばシンボリック・リンクを作成できる(SFUについてはTIPS「UNIX互換環境を実現するSFUを利用する」参照)。例えば「ln -s test.c newfile.c」とすれば、既存のtest.cファイルに対して、newfile.cという名前のシンボリック・リンクを作成できる(引数の順番はmklinkコマンドとは逆)。SFUはWindows 2000やWindows XPなどでも動作するため、 これでも十分と思うかもしれない。
だがSFUのln -sコマンドで作成されるシンボリック・リンクは、SFU環境内でのみ利用可能な独自の機能である(実際には、システム属性が付けられたファイル内に、リンク先の名前文字列をUnicode文字列で書き込んでいるだけ)。エクスプローラやコマンド・プロンプト、SFU以外の通常のWindowsアプリケーションなどからは見えないので、Windows VistaやWindows Server 2008のシンボリック・リンクの代用にはならない。![]()
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
TechTargetジャパン
- クライアントでも利用可能になるHyper-V 3.0とは? (2012/2/9)
Windows 8では、従来のWindows Virtual PCに代わって新しくHyper-V 3.0がクライアント向けにも導入される。その概要を解説 - 第303話 ペアプロ2 (2012/2/7)
あっ、またまたいつぞやの幽霊が! …っと思ったら、何だ倉井さんかぁ…。はぁー、驚いた… - Excelで郵便番号変換ウィザードを活用する (2012/2/3)
Excelで管理している顧客名簿などで、不足している郵便番号や住所を入力するのは意外と面倒。郵便番号変換ウィザードを使えば、これらの入力が簡単になる - PCをシンクライアント化するWindows Thin PCとは? (2012/2/2)
VDI向けにシンクライアントがほしいけど専用機を買う余裕はない… Windows Thin PCなら既存PCを低コストでシンクライアント化できる。まずは概要を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


