How can I undo the last cd command?

Is there any way to jump back to the previous working directory after doing a cd to a different directory?

My use-case is that I'm traversing a directory structure for a Java project, and I'm expecting that the current directory has only one sub-directory. So, I type cd and hit Tab and Enter rather quickly. However, the Tab failed, as I mistakenly expected one sub-directory, when in fact there are more. So now, I just executed cd, and am now in my home directory, instead of the Java project. Is there a way to "undo" this cd and jump back to the directory I was in?


You can use cd - to go back to your previous location, no matter where that was.


cd - is great for going back one level, but if you find yourself wanting to go back a few levels, check out this script:

acd_func.sh

It's great. cd -- to see your history, and cd -3 to go back 3 levels, for example.


You can also use pushd and popd to utilize the directory stack. Here's some information.


In addition, cd .. can take you back to the working directory's parent directory and then if necessary the command can be repeated until you get to where you want to be. In fact, each time it is evoked it takes you back through the directory tree, which would ultimately finish at / (the root directory) if you just kept repeating the command.

In contrast, cd - actually makes the previous working directory the current working directory, (which is known as .), and which exact location in the filesystem can be found with pwd.

So both cd .. and cd - can be useful in different circumstances when navigating the directory tree, although they do differ in the aforementioned respects. Perhaps the most useful command after having fun experimenting with these two commands is cd, which returns you to the home folder.