msys: sudo/ lnを使う
Windowsの運用で気になることがまた2つ。
sudoがしたい
lnが普通のコピーで運用される。
これらが使いにくい。
lnは実行してリンクと思ってたら 実際には実体が別になってましたー、とか、ちょっと混乱します。
sudoはどうなんだろう、ln以外には使わないけど...
sudo
こんな感じ
function msyspath() { if echo $* | grep -e '^/[A-z]$' > /dev/null; then echo $* return fi echo $* | sed 's/^\/\([a-z]\)\//\1:\\\\/i' \ | sed 's/\//\\\\/g' } function msysargs() { cmd= for i in $*; do if [ "x$cmd" == x ]; then cmd=$(msyspath $i); else cmd="$cmd $(msyspath $i)"; fi done echo $cmd } function sudo() { cmd=$(msysargs $*) cmd="runas //noprofile //savecred //user:administrator \"$cmd\"" echo $cmd eval $cmd unset cmd }
ln
こんな感じ
function ln() { sudo cmd /c mklink /D $(realpath $2) $(realpath $1) }
mklinkがlnと引数の順番が逆
mklinkはrootじゃないと動かない (知ってたけどmsysから使うのははじめて)
realpathとか初めて知った。
runasは "cmd /c" でないと動かない。引数は取れないそうだ
コメント
Comments powered by Disqus