mkdir で作成したパスを出力する
cd `mkdir foo`
とか
tar -xzvf foo.tar.gz -C `mkdir foo`
とかしたいわけですよ。
zshならpush-lineがあるので、しまったまだディレクトリを作ってないやと思っても大丈夫なわけだが、他のシェルとかだとどうすればいいか分からないので上記の様な解決方法を思いついてみた。
function mkdir { ALL_ARG="$@" OPT_COUNT=$OPTIND while getopts vpm: OPT v);; p);; m) (( ARG_COUNT++ )) ;; esac shift $ARG_COUNT /bin/mkdir $ALL_ARG && echo "$@" }
オプションを除いて(完全じゃないけど)パスのみを標準出力に出してあげるラッパー関数を書いた。
引数解析は全く持ってうまくないので過信は禁物だが、これでbashやkshでも後戻りが少なくなりそうな予感。