LoginSignup
74
90

More than 5 years have passed since last update.

Windowsでハードリンクやシンボリックリンクを作成する

Posted at

Windows でもハードリンクやシンボリックリンクが作れることを初めて知ったのでメモ。

それぞれの対象

ハードリンク ジャンクション シンボリックリンク
対象 ファイル フォルダ ファイル+フォルダ

ハードリンク

書式

mklink /h <リンク> <ターゲット>

>dir /b
hoge.txt

>type hoge.txt
hoge

>mklink /h hard_link.txt hoge.txt
hard_link.txt <<===>> hoge.txt のハードリンクが作成されました

>dir /b
hard_link.txt
hoge.txt

>type hard_link.txt
hoge

>echo aaa >> hoge.txt

>type hard_link.txt
hoge
aaa

>mkdir dir & move hoge.txt dir
        1 個のファイルを移動しました。

>tree /f
hard_link.txt
│
└─dir
        hoge.txt

>type hard_link.txt
hoge
aaa

>rmdir /s /q dir

>dir /b
hard_link.txt

>type hard_link.txt
hoge
aaa

最初に存在したファイル(hoge.txt)が移動されたり削除されたりしても、ハードリンクはターゲットの実体を指し続ける。

ジャンクション

書式

mklink /j <リンク> <ターゲット>

>tree /f
└─dir
        hoge.txt

>mklink /j junction_dir dir
junction_dir <<===>> dir のジャンクションが作成されました

>tree /f
├─dir
│      hoge.txt
│
└─junction_dir
        hoge.txt

>echo fuga.txt > junction_dir\fuga.txt

>tree /f
├─dir
│      fuga.txt
│      hoge.txt
│
└─junction_dir
        fuga.txt
        hoge.txt

>rmdir /s /q dir

>tree /f
└─junction_dir

>cd junction_dir
指定されたファイルが見つかりません。

オリジナルのフォルダ(dir)が削除されると、ジャンクションは残るがアクセスできなくなる。

シンボリックリンク

作成には 管理者権限が必要

書式

ファイルの場合
mklink <リンク> <ターゲット>
フォルダの場合
mklink /d <リンク> <ターゲット>

>dir /b
hoge.txt

>type hoge.txt
hoge

>mklink symbolic_link.txt hoge.txt
symbolic_link.txt <<===>> hoge.txt のシンボリック リンクが作成されました

>type symbolic_link.txt
hoge

>echo sss >> symbolic_link.txt

>type hoge.txt
hoge
sss

>mkdir dir & move hoge.txt dir
        1 個のファイルを移動しました。

>tree /f
symbolic_link.txt
│
└─dir
        hoge.txt

>type symbolic_link.txt
指定されたファイルが見つかりません。

>echo fuga > hoge.txt & tree /f
hoge.txt
│  symbolic_link.txt
│
└─dir
        hoge.txt

>type symbolic_link.txt
fuga

>move symbolic_link.txt dir & tree /f
        1 個のファイルを移動しました。
│  hoge.txt
│
└─dir
        hoge.txt
        symbolic_link.txt

>type dir\symbolic_link.txt
hoge
sss

>del dir\hoge.txt & tree /f
hoge.txt
│
└─dir
       symbolic_link.txt

>type dir\symbolic_link.txt
指定されたファイルが見つかりません。
  • シンボリックリンクを作成したときに指定したパスにファイルがなくなると、参照できなくなる。
  • 相対パス指定で作成した場合、シンボリックリンクの場所から相対パスで指定した場所にあるファイルが参照される(もともとあったファイルと別のファイルでも問題ない)。
  • 絶対パスでも作成可能。

参考

74
90
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
74
90