When using popd, how to push the current directory onto the stack?

$ pwd; pushd /tmp; pwd; popd; pwd
/tmp ~

Bash will keep a history of the directories you visit, you just have to ask. Bash stores the history in a stack and uses the commands pushd and popd to manage the stack.

If you don't need multiple levels of directory history, you can also do:

cd foo
# do your stuff in foo
cd -

Compared to pushd/popd, this has the disadvantage that if cd foo fails, you end up in the wrong directory with cd -.

(Probably cd - is more handy outside scripts. "Let's go back where I just was.")

See Use pushd and popd to manipulate directory stack for more help.

  • 1
    I also advise the OP to google around for the concept of stack, and the push and pop operations in programming languages. – Rui F Ribeiro Jun 24 '16 at 8:03

It should be just

[$]> pushd .


pushd -n $(pwd)

adds the current directory $(pwd) to the stack without changing directory.

From help pushd in bash:


-n Suppresses the normal change of directory when adding directories to the stack, so only the stack is manipulated.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.