cygwin でシンボリックリンクを作るとWindows側でショートカットとして動作しない。
Windows側でショートカットを作るとCygwin側からシンボリックリンクっぽく動作する。
というわけでCygwinの場合、ショートカットをつかって、Symlinkは避けるべきか。
Cygwinで使えるショートカットの作り方
- winsymlinks
- mklink
- ln
動作についてチョッとだけしらべてみた。
windowsで作ったシンボリックリンクを cmd.exeから見てみた
C:\Users\takuya のディレクトリ 2011/06/24 03:37 <DIR> . 2011/06/24 03:37 <DIR> .. 2011/02/07 16:05 <SYMLINKD> apps [C:\Users\Public\apps] 2011/06/24 02:58 <DIR> Desktop
Cygwin側からみてみる
takuya@letsnote:~$ ls -alt | grep app lrwxrwxrwx 1 Administrators None 17 2月 7 16:05 apps -> /home/Public/apps
ポイントはこんな感じ
cygwinから ln -s すると・・・・
takuya@letsnote:~/作ったもの$ ln -s /usr/local/bin ./cygwin takuya@letsnote:~/作ったもの$ ls -l ./cygwin lrwxrwxrwx 1 takuya None 14 6月 24 03:56 ./cygwin -> /usr/local/bin
cmd.exeで見ると。ファイルになってしまう。
C:\Users\takuya\作ったもの のディレクトリ 2011/06/24 03:56 <DIR> . 2011/06/24 03:56 42 cygwin
ファイルです、開いてもバイナリしかありません
mklink について
C:\Users\takuya>mklink シンボリック リンクを作成します。 MKLINK [[/D] | [/H] | [/J]] リンク ターゲット /D ディレクトリのシンボリック リンクを作成します。既定では、 ファイルのシンボリック リンクが作成されます。 /H シンボリック リンクではなく、ハード リンクを作成します。 /J ディレクトリ ジャンクションを作成します。 リンク 新しいシンボリック リンク名を指定します。 ターゲット 新しいリンクが参照するパス (相対または絶対) を指定します。
という感じです。このコマンドはUAC制御化の特権ユーザーでしか動きません。注意が必要ね。ハードリンクが作れるとか,ジャンクションが造れるとかでちょっとワクワクする
mklink /D c:\users\takuya\cygwin c:\cygwin
などとする。ln -s とディレクトリ指定順が反対になる。注意が必要よ。