mklink - リンクの作成

にメンテナンス済み

mklinkコマンドは、ファイルシステム上のリンクを作成するコマンドです。

エクスプローラーのショートカットと似ていますが、mklinkで作成するリンクはファイルシステムレベルで扱われるため、コマンドラインやアプリケーションからも通常のファイルやフォルダに近い形で利用できます。

mklinkコマンドの基本構文

mklink [[/d] | [/h] | [/j]] <リンク> <ターゲット>
要素説明
<リンク>新しく作成するリンクのパス
<ターゲット>リンク先となるファイルまたはフォルダのパス
/dディレクトリへのシンボリックリンクを作成
/hファイルへのハードリンクを作成
/jディレクトリジャンクションを作成

リンクの種類

mklinkで作成できるリンクは、用途によって使い分けます。

種類作成方法主な用途
ファイルのシンボリックリンクオプションなし別の場所にあるファイルを参照したい
ディレクトリのシンボリックリンク/dフォルダ全体を別の場所から参照したい
ハードリンク/h同一ボリューム内で 1 つのファイルに複数の名前を付けたい
ディレクトリジャンクション/j管理者権限なしでローカルのフォルダを別の場所から参照したい
シンボリックリンクとショートカットの違い

ショートカットは .lnk ファイルですが、シンボリックリンクはファイルシステムのリンクです。 コマンドやアプリケーションから扱うときは、ショートカットより mklink のリンクの方が自然に使える場面が多くあります。

ジャンクションとシンボリックリンクの主な違いは次のとおりです。

項目シンボリックリンクディレクトリジャンクション(/j)
対象ファイル・フォルダフォルダのみ
相対パスのターゲット使える絶対パスとして保存される
ネットワーク上のパス指定できる指定できない(ローカルのみ)
管理者権限通常は必要不要

管理者権限を使えない環境でフォルダを別の場所へ見せたいときは、ジャンクションが手軽です。

基本的な使い方

ファイルへのシンボリックリンクを作成する

mklink C:\work\latest.log C:\logs\2026-04-20.log
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>mklink C:\work\latest.log C:\logs\2026-04-20.log
symbolic link created for C:\work\latest.log <<===>> C:\logs\2026-04-20.log
C:\users\user>

フォルダへのシンボリックリンクを作成する

mklink /d C:\work\assets D:\shared\assets

ハードリンクを作成する

mklink /h C:\work\report-latest.txt C:\archive\report.txt
ハードリンクの制約

ハードリンクはファイルに対してのみ作成でき、同じボリューム内で使う必要があります。 フォルダには使えません。

ディレクトリジャンクションを作成する

mklink /j C:\work\current D:\projects\current

作成したリンクを確認する

dirコマンドを実行すると、リンクの種類が<SYMLINK>(ファイルのシンボリックリンク)、<SYMLINKD>(フォルダのシンボリックリンク)、<JUNCTION>(ジャンクション)として表示されます(ハードリンクは通常のファイルと区別されず、表示されません)。

dir C:\work

使い分けの目安

  • 別ドライブをまたいでフォルダを参照したい場合は、まずシンボリックリンクかジャンクションを検討します。
  • 同じファイルに複数の名前を持たせたい場合は、ハードリンクが向いています。
  • バッチファイルやツールから通常のパスと同じように扱いたい場合は、ショートカットより mklink の方が適しています。

注意点

権限について

多くの環境では、シンボリックリンクの作成に管理者権限が必要です。 ただし、Windows 10 / 11 で開発者モードが有効な環境では、管理者権限なしで作成できる場合があります。

  • シンボリックリンクは、相対パスでも絶対パスでも作成できます。
  • ハードリンクは元ファイルと同じ実体を指す別名です。どちらか一方の名前を削除しても、もう一方から内容を参照できます。
  • 相対パスでシンボリックリンクを作る場合、ターゲットは「リンクがある場所」を基準に解釈されます。
  • 適切なコマンドでリンクを削除すれば、リンク先の元ファイルや元フォルダは削除されません。

リンクの削除方法

リンクだけを削除したい場合は、リンクの種類に応じて削除コマンドを使い分けます。

ファイルのリンクを削除する

del C:\work\latest.log

ディレクトリのリンクやジャンクションを削除する

rmdir C:\work\assets
フォルダのリンクに del を使わない

フォルダのシンボリックリンクやジャンクションに対してdelを実行すると、リンク先フォルダ内のファイルが削除されます。 フォルダのリンクを消すときは、必ずrmdir(/sを付けない)を使ってください。

削除対象に注意

削除するのはあくまでリンクです。リンク先の実体を削除したい場合は、元のパスを指定してください。

関連記事

練習問題

#コマンドプロンプト #バッチファイル #引数 #コマンドライン #コマンド