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.
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.
nothing prevents you from creating your own alias or small script
mkdir $1 && cd $1
Or you can use ';' to separate commands, like:
mkdir php5.3 ; cd php5.3
You can define a function in bash to do this:
function mkcd() {
mkdir $1 && eval cd $1
}
A close answer that can help. It is easy to type.
mkdir php7 && cd !$