startコマンドは便利ですが
結論から言うと,cygpathなるコマンドがあります,という話です。
whitypigさんは2008年5月28日の日記
http://d.hatena.ne.jp/whitypig/20080515
にて書きました。
cygwin には,cygstart なるものがある!! man みて,はい,コレに決定。ちゃっちゃと, ln -s /usr/bin/cygstart /usr/local/bin/start しちゃいな。だって,cyg って打鍵するの苦手なんです。
はい,使ってます。
で,cygwinで,
% start c:
とかやると,エクスプローラでCドライブを開いてくれるわけですが,
わたくし,ファイラーは,MDIEを使わせてもらっているわけでして,
ちょいと不便なわけですよ。くわえて,Windowsパスを入力するのには,
/cygdrive/c/ほにゃららとかやる必要あるので,しんどいと。
シンボリックリンクにも対応してないです。
そこで,cygpathのご登場です。
つまり,~/bin/mdieという名前でファイルを作成して,
#!/bin/sh if [ $# -eq 0 ] then echo "mdie: the num of arguments should be greater than 0, but received 0." echo "usage: mdie directory"; exit 1 fi /cygdrive/c/opt/mdie0300RC4_1/MDIE.exe "$(cygpath -aw $@)"
と書き込んで,実行可能にすると。
シェルスクリプトがたぶんおそまつなので,そのへんは突っ込んでもらったり,
見逃してもらったりするということで,おいといてと。
これで,
% mdie ~/desktop@windows
みたいにすると,MDIEでデスクトップを開いてくれると。
わー,パチパチ。
以下,man cygpath と,ちょっこすな解説。
CYGPATH(1) CYGWIN CYGPATH(1) NAME cygpath - Convert Unix and Windows format paths, or output system path information
Unix形式,Windows形式のパスの変換やりまっせ。
つぎにオプションの抜粋。
SYNOPSIS cygpath (-d|-m|-u|-w|-t TYPE) [-f FILE] [OPTION]... NAME... cygpath [-c HANDLE] cygpath [-ADHPSW] -u, --unix (default) print Unix form of NAMEs (/cygdrive/c/winnt) -w, --windows print Windows form of NAMEs (C:\WINNT) Path conversion options: -a, --absolute output absolute path
MDIEに渡すためにパスを私ためには,
cygstartコマンドにWindows形式で絶対パスを渡す必要があるので,
「cygpath -aw $@」となるわけですね。
もっとやるなら,MDIE.exe にシンボリックリンクを張って,
cygpath経由で実行するとか。
というわけで,知っている人は多いかと思われますが,
知らない人は,ぜひどうぞ。便利ですので。
今回もmanを書いた人,cygwin作っている人に感謝感謝。