はじめに
Linux環境だと当たり前のようlnコマンドでリンクを作っていましたが、Windowsではショートカットは作ってもリンクを作ったことがなかった事に気付いて、Windows環境でリンクを作る方法を調べてみました。
リンクとショートカットの違い
リンク
- OSレベルで利用可能な機能です。
- シンボリックリンクの場合、コマンドプロンプト上(あるいはPowerShell上)では普通のファイルやフォルダのように見えますが、リンクであることを示す「目印」が付いています。
- コマンドプロンプトの場合:リンク先のパスが書かれていることに加えて、シンボリックリンクを示す
<SYMLINK>という文言が付いています。 - PowerShellの場合:Mode(属性)にリンクを示す
lが付いています。
- コマンドプロンプトの場合:リンク先のパスが書かれていることに加えて、シンボリックリンクを示す
コマンドプロンプト上でのショートカットとリンクの見え方
C:\test>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 9CCC-2AE4 です
C:\test のディレクトリ
2026/09/07 21:34 <DIR> .
2026/09/07 21:26 9,200 sample.txt
2026/09/07 21:28 914 sample.txt - ショートカット.lnk
2026/09/07 21:34 <SYMLINK> sample.txt.lnk [C:\test\sample.txt]
3 個のファイル 10,114 バイト
1 個のディレクトリ 276,042,149,888 バイトの空き領域
Powershell上でのショートカットとリンクの見え方
PS C:\test> dir
ディレクトリ: C:\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2026/09/07 21:26 9200 sample.txt
-a---- 2026/09/07 21:28 914 sample.txt - ショートカット.lnk
-a---l 2026/09/07 21:34 0 sample.txt.lnk
ショートカット
- GUI(エクスプローラー)のみで利用可能な機能です。
- コマンドプロンプト上(あるいはPowerShell上)では、ショートカットは
*.lnkファイルとして表示されます。
リンクの作り方
コマンドプロンプト
-
mklinkコマンドでリンク(シンボリックリンク)を簡単に作れます。- リンクの作成には管理者権限が必要になるようです。
-
/hオプションを付けると、ハードリンクを作れます。
-
/dオプションを付けると、ディレクトリのシンボリックリンクを作れます。
コマンドプロンプトでのリンクの作成
set path=C:\test\sample.txt.lnk
set target=C:\test\sample.txt
mklink %path% %target%
Powershell
- Powershellの場合、
New-Itemコマンドレットを使います。 - ファイルやディレクトリを新規作成する時と同じコマンドレットですが、パラメーターの
-ItemTypeにSymbolicLinkを指定することでリンクを作れます。
Powershellでのリンクの作成
$path = "C:\test\sample.txt.lnk"
$target = "C:\test\sample.txt"
New-Item -ItemType SymbolicLink -Path $path -Value $target