Windowsのexplorerで作ったショートカットファイル .lnk
Cygwinからみると、lnk が通常ファイルに見えてしまう。
しかし、これをショートカットとしてシンボリックリンクてきに扱うことがべ着れば便利だと思うんですね。
Cygwinで扱うことが出来るショートカット
cygwin では各種ショートカットを扱うことが出来る。
ショートカット | 詳細 |
---|---|
.lnk | エクスプローラーのショートカット |
ntfs:symlink | NTFSのシンボリックリンク |
symlink | Linuxのシンボリックリンクファイル |
初期設定のCygwinはLinuxのシンボリックリンク・ショートカットを作っていた。
lnk ファイルをショートカットに扱うには
export CYGWIN="winsymlinks:native"
または
export CYGWIN="winsymlinks:lnk"
この環境変数を入れればイイようだ。
winsymlinls:lnk にした場合
ln -s
で作られるショートカットは lnk
になる。
winsymlinls:native にした場合
ln -s
で作られるショートカットは ntfs symlinkd
になる。
読み込みやCDコマンドは同じ。
winsymlinls:lnk も winsymlinls:native もどちらを設定しても、リンクは読めた
takuya@:~/Desktop$ ll 合計 128 -rw-r--r--+ 1 takuya None 0 4月 28 16:03 a.txt lrwxrwxrwx 1 takuya None 5 4月 28 16:04 b.shortcut -> a.txt drwxr-xr-x+ 1 takuya None 0 4月 28 15:49 ディレクトリ1 lrwxrwxrwx 1 takuya None 21 4月 28 15:58 リンク0 -> ディレクトリ1 lrwxrwxrwx 1 takuya None 21 4月 28 15:49 リンク1 -> ディレクトリ1 lrwxrwxrwx 1 takuya None 21 4月 28 15:54 リンクnative -> ディレクトリ1
但し、読めたのは、Cygwinから作った場合のみで、Explorerで作られた lnk が読めなかった。なぜだろう。疑問が残る。
もちろん cd も出来る
$ mkdir ディレクトリ1 $ ln -s ディレクトリ1 リンク1 $ cd リンク1 $ pwd /home/takuya/Desktop/リンク1
この状態で、cmd.exe から見ると次のようになっている。
C:\Users\takuya\Desktop>dir | nkf -w dir | nkf -w ドライブ C のボリューム ラベルは HDD です ボリューム シリアル番号は F270-76C3 です C:\Users\takuya\Desktop のディレクトリ 2016/04/28 15:49 <DIR> ディレクトリ1 2016/04/28 15:54 <SYMLINKD> リンクnative [ディレクトリ1] 2016/04/28 15:49 539 リンク1.lnk
ふむ。