How can I create a directory and change my working directory to the new directory?

I'm seeking a way to create directory and change my present working directory to newly created directory just by using a single command. How can I do this?

i.e Instead of doing

user@Computer:~$ mkdir NewDirectory
user@Computer:~$ cd NewDirectory
user@Computer:~/NewDirectory$ 

I want to do

user@computer:~$ **command** NewDirectory
user@Computer:~/NewDirectory$

What can the command be?


Solution 1:

If you really want it to be just one command, I suggest adding something like this to your .bashrc:

md () { mkdir -p "$@" && cd "$1"; }

Entering md foo on the command line will then create a directory called foo and cd into it immediately afterwards. Please keep in mind, that you will have to reload your .bashrc for the changes to take effect (i.e. open a new console, or run source ~/.bashrc).

Cf. http://www.commandlinefu.com/commands/view/3613/create-a-directory-and-change-into-it-at-the-same-time for possible alternatives, too.

Solution 2:

mkdir "NewDirectory" && cd "NewDirectory"

  • The part behind the && will only execute if the 1st command succeeds.
  • It is called a Lists of Commands in the Bash manual.
  • There is also a shorthand version:

    mkdir "NewDirectory" && cd "$_"
    
  • Example from command line:

    $ false && echo "yes"
    $ true && echo "yes"
    yes
    
  • (edit) Add " to the commands since the directory might contain a space.