同じ内容をQiitaにも書いています。
(MSYS2でディレクトリのシンボリックリンクを作成する方法 - Qiita)
Windowsでは、一般ユーザでシンボリックリンクの作成はできません。
1
2
|
$ ln -s /c/Users/kunst/Documents
ln: シンボリックリンク `./Documents' の作成に失敗しました: Permission denied
|
ディレクトリのリンクを作成したい場合は、cmd.exe組み込みの「mklink」コマンドを使用して、ジャンクションとして作成しましょう!
mklinkコマンドについて
コマンドプロンプト(cmd.exe)から、ヘルプを参照してみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
|
C:\usr\home\test>mklink /?
シンボリック リンクを作成します。
MKLINK [[/D] | [/H] | [/J]] リンク ターゲット
/D ディレクトリのシンボリック リンクを作成します。既定では、
ファイルのシンボリック リンクが作成されます。
/H シンボリック リンクではなく、ハード リンクを作成します。
/J ディレクトリ ジャンクションを作成します。
リンク 新しいシンボリック リンク名を指定します。
ターゲット 新しいリンクが参照するパス (相対または絶対)
を指定します。
|
※引数のsourceとdestの順番がlnコマンドと逆なので注意しましょう
mklinkコマンドを使ってジャンクションを作成する
コマンドプロンプト(cmd.exe)から作成する場合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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 バイトの空き領域
|
msys2のbashから作成する場合
cmd.exeを起動して、実行するコマンドを引数に渡します。
パスの書き方がWindowsの書き方になるので注意
1
2
3
4
5
6
|
$ cmd.exe /c "mklink /j Documents C:\Users\kunst\Documents"
Documents <<===>> C:\Users\kunst\Documents ▒̃W▒▒▒▒▒N▒V▒▒▒▒▒▒▒쐬▒▒▒▒܂▒▒▒
$ ls -l
合計 0
lrwxrwxrwx 1 kunst なし 24 10月 14 12:45 Documents -> /c/Users/kunst/Documents/
|
ジャンクションの消し方
消すときはunlinkコマンドで問題ありません。
1
2
3
|
$ unlink Documents
$ ls
|