それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

cywin で windowsの.lnk のショートカットをシンボリックリンク的に扱う。

Windowsのexplorerで作ったショートカットファイル .lnk

Cygwinからみると、lnk が通常ファイルに見えてしまう。

しかし、これをショートカットとしてシンボリックリンクてきに扱うことがべ着れば便利だと思うんですね。

Cygwinで扱うことが出来るショートカット

cygwin では各種ショートカットを扱うことが出来る。

ショートカット 詳細
.lnk エクスプローラーのショートカット
ntfs:symlink NTFSのシンボリックリンク
symlink Linuxシンボリックリンクファイル

初期設定のCygwinLinuxシンボリックリンク・ショートカットを作っていた。

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

ふむ。