CygwinでWindowsでも使えるショートカットを作成

CygwinWindowsを移動しているとよく行く場所にはlnコマンドを使ってシンボリックリンクを貼っている。CygwinWindowsではリンクの扱いが異なるのでメモ。
シンボリックリンクとショートカットの違いは以下のサイトでのやりとりがわかりやすい。
参考:シンボリックリンクとショートカットってどう違うんですか? – Yahoo!知恵袋 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1271642502
  • シンボリックリンク: リンク先そのものとして扱える
  • ショートカット: リンク先が書いてあるだけ
実際にシンボリックリンクとショートカットをWindowsのエクスプローラーからメモ帳などで開いてみるとわかりやすい。

Winsowsでシンボリックリンクを作るにはmklinkコマンドを使う。

Cygwinからショートカット(.lnkを作るには、cygutilsパッケージに含まれているmkshortcutというコマンドを使えばいい。

端末から作業する上ではシンボリックリンクの方が何かと便利。ショートカットだとcdコマンドで移動できないし、リンクからのコマンドの実行もできない。
Cygwinlnコマンドを実行すると、標準ではWindowsでは読み取れないファイルが作られる。CYGWIN環境変数を設定することでlnコマンドによるシンボリックリンク作成時のWindowsの共同を制御できる。
参考:

リンクに関係するCygwin環境変数に設定可能な値は以下にまとめた。

概要
winsymlinks
Windows ではショートカット(.lnk)を使用。
winsymlinks:lnk
同上
winsymlinks:native
Windowsでもシンボリックリンクを使用する。作成に失敗した場合はショートカットでの実現を試す。
winsymlinks:nativestrict
Windowsでもシンボリックリンクを使用する。作成に失敗した場合はエラーを出す。

以下のように設定するとCygwinlnコマンドでシンボリックリンクを作成時に、Windowsでも利用可能なリンクを作れる。nativestrictにすると管理者権限が必要なときなどでエラーが出てしまい、設定していたことを忘れたときに困るので控えたほうがいいだろう。


export CYGWIN=winsymlinks:native

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です