MSYS2でディレクトリのシンボリックリンクを作成する方法
同じ内容をQiitaにも書いています。
(MSYS2でディレクトリのシンボリックリンクを作成する方法 - Qiita)
Windowsでは、一般ユーザでシンボリックリンクの作成はできません。
$ ln -s /c/Users/kunst/Documents ln: シンボリックリンク `./Documents' の作成に失敗しました: Permission denied
ディレクトリのリンクを作成したい場合は、cmd.exe組み込みの「mklink」コマンドを使用して、ジャンクションとして作成しましょう!
mklinkコマンドについて
コマンドプロンプト(cmd.exe)から、ヘルプを参照してみましょう。
C:\usr\home\test>mklink /? シンボリック リンクを作成します。 MKLINK [[/D] | [/H] | [/J]] リンク ターゲット /D ディレクトリのシンボリック リンクを作成します。既定では、 ファイルのシンボリック リンクが作成されます。 /H シンボリック リンクではなく、ハード リンクを作成します。 /J ディレクトリ ジャンクションを作成します。 リンク 新しいシンボリック リンク名を指定します。 ターゲット 新しいリンクが参照するパス (相対または絶対) を指定します。
※引数のsourceとdestの順番がlnコマンドと逆なので注意しましょう
mklinkコマンドを使ってジャンクションを作成する
コマンドプロンプト(cmd.exe)から作成する場合
C:\usr\home\test>mklink /j Documents C:\Users\kunst\Documents Documents <<===>> C:\Users\kunst\Documents のジャンクションが作成されました C:\usr\home\test>dir ドライブ C のボリューム ラベルは Windows です ボリューム シリアル番号は 66AD-860B です C:\usr\home\test のディレクトリ 2015/10/14 12:44 <DIR> . 2015/10/14 12:44 <DIR> .. 2015/10/14 12:44 <JUNCTION> Documents [C:\Users\kunst\Documents] 0 個のファイル 0 バイト 3 個のディレクトリ 161,501,753,344 バイトの空き領域
ジャンクションの消し方
消すときはunlinkコマンドで問題ありません。
$ unlink Documents $ ls