本文を読み飛ばす

msys: sudo/ lnを使う

Windowsの運用で気になることがまた2つ。

  1. sudoがしたい

  2. 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
宣伝: