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