Mar 9th, 2013

OS X の bash で 'cd old new' を使えるようにした

kshzsh では以下のような cd old new が使えるので階層が深い場合にとても便利だ。

$ cd /usr/bin
$ cd bin lib
$ pwd
/usr/lib

だけどこの操作は bash では使えないので、以下のようにして使えるようにしてみた。 cd 成功時に ls が実行されるようにしてるのはただの気分です。

cd() {
    if [ -d  "$*" ]; then
       builtin cd "$*"
    else
        if [ -n "$2" ]; then
            builtin cd ${PWD/$1/$2};
        else
            builtin cd $*
        fi;
    fi;
    if [ $? = 0 ]; then
       ls
    fi;
}

このファイルを .bashrc などで読みこめばいいだけ。