目次
Windowsでのリンク活用 ― ジャンクション (/J) と シンボリックリンク (/D) の違いと使い分け
Windowsには、複数の「リンク」機能があります。
その中でもよく使うのが ジャンクション (/J) と シンボリックリンク (/D)。
一見似ていますが、仕組みや得意分野に違いがあります。この記事では、それぞれの特徴と使い分けの指針をまとめます。
基本の違い
種類 | 対象 | 制約 | 見え方 | 典型的用途 |
---|---|---|---|---|
/J (ジャンクション) | フォルダのみ | 同一ドライブ内 | 実体とほぼ区別不可 | ユーザープロファイルの置き換え、記事用の統一パス |
/D (シンボリックリンク) | フォルダ・ファイル両方 | ドライブまたぎOK | リンクと実体を区別可能(属性に「SYMLINK」表示) | クロスドライブの参照、柔軟なリンク構造 |
ジャンクション (/J) の特徴
- フォルダ専用
- 同一ドライブ内でしか作れない
- 古いアプリやバックアップツールでも安定して扱える
mklink /J "リンク" "実体"
で作成- 記事用に
C:\Users\UserName
→C:\Users\(実際のユーザネーム)
のように統一するのに最適
メリット
- 動作が軽い・速い
- 互換性が高い(古いWindowsや一部ツールでも問題なし)
- 実体とリンクを区別しにくいため、コードや記事の見た目がスッキリ
デメリット
- フォルダしか作れない
- ドライブをまたげない(例:C:\ → D:\ は不可)
シンボリックリンク (/D) の特徴
- ファイルにもフォルダにも使える
- 異なるドライブやネットワークパスにも作れる
mklink /D "リンク" "実体"
で作成- LinuxやmacOSにも同じ概念があるので、クロスプラットフォームで学んだ知識を流用しやすい
メリット
- 柔軟で万能
- Linux/WSL などとも概念が共通
- クロスドライブのリンクが可能
デメリット
- 古いツールでは「ただのショートカット」扱いされたり無視される場合がある
- 一部のセキュリティポリシーや同期サービスでは制限されることがある
使い分けの指針
- 記事用のハードパス統一
→/J
(ジャンクション)が安定。 - 異なるドライブやNASをリンクしたい
→/D
(シンボリックリンク)が必須。 - ファイル単体のリンクが必要
→/D
のみ。 - クロスプラットフォーム学習・実験
→/D
の方が馴染みやすい。
導入時の注意点
- 管理者権限が必要(特に
C:\Users
配下で作るとき) - 親フォルダをあらかじめ用意(空でもOK)
- リンクと実体の衝突回避:同名の実ユーザーやフォルダと被らないようにする
- クラウド同期配下は避ける(OneDrive/Dropboxはリンクを正しく扱わないことがある)
まとめ
- 記事やコードのパス統一 → /J(ジャンクション)
- クロスドライブやファイル単位 → /D(シンボリックリンク)
どちらも「再作成すれば元に戻る」という性質があるので、運用上は「リンク作成バッチを資産と一緒に保存」しておくのがおすすめです。