如何mkdir并切换到一行中的新目录

cod*_*eak 4 shell function mkdir

我一直在使用linux控制台一段时间了.令我恼火的一件事是每次我创建一个新目录时mkdir我都要cd改变它.是否有一个命令解决方案来创建和切换到刚刚创建的目录?

现在我做:

mkdir php5
cd php5
Run Code Online (Sandbox Code Playgroud)

我可不可以做:

mkdir -someswitch php5
Run Code Online (Sandbox Code Playgroud)

我想要简单干净的东西.一个很好的例子是git branch somebranch制作新分支,git checkout -b somebranch并制作和切换到新分支.

Den*_*nis 10

发现了一些魔法:

mkdir foo && cd $_
Run Code Online (Sandbox Code Playgroud)


Jen*_*ens 6

可执行此操作的可移植方法是使用shell函数 - 而不是bash函数(使用bashims function).把它放在相关.profile的交互用途中:

 mkdir () {
    case $1 in
       (-c) command mkdir -p "$2" && cd "$2";;
       (*)  command mkdir "$@";;
    esac
 }
Run Code Online (Sandbox Code Playgroud)

这为交互式使用添加了-c选项mkdir.没有-c实用程序就像往常一样.-并注意引用,"$2"所以这适用于名称中带有空格的目录.