How to mkdir and switch to new directory in one line

烈酒焚心 提交于 2019-12-19 09:17:55

问题


I have been using the linux console for some time now. One thing that irritates me is that every time I create a new directory using mkdir I have to cd to change to it. Is there a single command solution to create and switch to the directory just created?

Right now I do:

mkdir php5
cd php5

can I do:

mkdir -someswitch php5

I want something simple and clean. A good example is git branch somebranch which makes new branch and git checkout -b somebranch which makes and switches to new branch.


回答1:


The portable way to do this is with a shell function--not a bash function (using bashims like function). Put this in the relevant .profile for interactive use:

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

This adds the -c option to mkdir for interactive use. Without -c the utility acts as it always does.- And note the quoting of "$2" so this works with directories with white space in their name.




回答2:


nothing prevents you from creating your own alias or small script

mkdir $1 && cd $1



回答3:


Or you can use ';' to separate commands, like:

mkdir php5.3 ; cd php5.3




回答4:


You can define a function in bash to do this:

function mkcd() {
    mkdir $1 && eval cd $1
}



回答5:


A close answer that can help. It is easy to type.

 mkdir php7 && cd !$ 


来源:https://stackoverflow.com/questions/16261657/how-to-mkdir-and-switch-to-new-directory-in-one-line

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!