はじめに
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