mklink(ハードリンク、ジャンクション、シンボリックリンク)のメモ

Windowsでmklink使ってフォルダやファイルの(実体はコピーせずに、参照だけする)リンクを作成することができますが、『ハードリンク』『ジャンクション』『シンボリックリンク』の区別がいまいちついていなかったので、ちょっとまとめてみます。

『ハードリンク』
・コマンドは mklink /h …
・ファイルにしか適用できない
・同じドライブ内でしか使用できない
・全てのリンクが削除されない限り本体が削除されない
・DropBox等で使用すると不具合が出たりする?

『ジャンクション』
・コマンドは mklink /j …
・ドライブをまたいで使用可能
・フォルダにしか使用できない
・ネットワークドライブには使用できない
・シンボリックリンクの劣化版

『シンボリックリンク』
・コマンドは mklink /d …
・UNIXのシンボリックリンクと同等の機能を持つ
・ファイル、フォルダ、ネットワークドライブなど、ほとんどの対象に使用可能
・ジャンクションの強化版

ということなので、あまり深いことは考えず『シンボリックリンク』を使っておけば大丈夫という事で理解。

【追記】
perforceでワークスペース内にシンボリックリンクのフォルダが存在すると、p4 syncした際にアクセス関連のエラーが出ることがあった。
ジャンクションに切り替えた所問題が出なくなったので、ジャンクションの制限を無視できる場合はジャンクションを使用した方が良いかも。