mkdirした後にそのディレクトリに移動
これをやりたいことって多い
なので、エイリアスとして登録しておきたいと思い調べてみると、すぐ出てきた。
function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }
参考: [Hack 3. 1つのコマンドで mkdir と cd を実行する
で、これ何やってるの?
一見して何やってるかよくわからなかったので調べた
mkdir -p は/dir1/dir2 を渡したときに再帰的に作ってくれるオプション
eval は後ろのコマンドの中の変数を評価して展開する
$@ は引数全部をスペース区切り
$# は引数の数
cd "\"\$$#\"" = cd "${引数の数}" = cd {最後の引数}
つまり複数の引数が渡されたらそれらをmkdirして、最後に渡された引数のディレクトリに移動する。
例
$ mkdircd dir1/dir2 dir3/dir4
# $@ = "dir1/dir2 dir3/dir4"
# $# = 2
# eval cd "\"\$$#\"" => cd "$2" => cd "dir3/dir4"
# つまり mkdir dir1/dir2 dir3/dir4; cd dir3/dir4