YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

Windows XPでハードリンク(ジャンクション)作成

はじめに

UNIX系システムではlnコマンドを使ってシンボリックリンク、ハードリンクなどを作成することがしばしばありますが、そんなコマンドをWindowsで行いたい時があります。毎回ググってたのでまとめました。

ハードリンク

ファイルの場合

ファイルはUNIXなどと同様にfsutilコマンドでハードリンクを張ることができます。

C:\Lhome> fsutil create hardlink <hardlink name> <source filename>
フォルダの場合

UNIXではディレクトリもファイルも関係なくlnコマンドでリンクを張れますが、Windowsの場合はそうはいきません。ファイルと同様にfsutilでリンクを張ろうとするとエラーが起きます。

C:\Lhome> fsutil create hardlink C:\Lhome\LinkDir C:\Lhome\SrcDir
Error:  Access is denied.

フォルダのハードリンクはジャンクションと呼ばれ、専用のコマンドをSystemInternalsからダウンロードしてインストールしてください。

zipファイルをダウンロードしてきたらjunction.exeを適当にPATHが通っているところに放り込んでおきます。これで下記コマンドを実行すればハードリンク作成完了。

C:\Lhome>junction "C:\Lhome\LinkDir" "C:\Lhome\SourceDir"

Junction v1.06 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

Created: C:\Lhome\LinkDir
Targetted at: C:\Lhome\SourceDir