Bash Reference Manual. Node: The Directory Stack

PREVArrays UPBash Features NEXTPrinting a Prompt

5.11: The Directory Stack

The directory stack is a list of recently-visited directories. The pushd builtin adds directories to the stack as it changes the current directory, and the popd builtin removes specified directories from the stack and changes the current directory to the directory removed. The dirs builtin displays the contents of the directory stack.

The contents of the directory stack are also visible as the value of the DIRSTACK shell variable.

dirs
dirs [+N | -N] [-clvp]

Display the list of currently remembered directories. Directories are added to the list with the pushd command; the popd command removes directories from the list.

+N

Displays the Nth directory (counting from the left of the list printed by dirs when invoked without options), starting with zero.

-N Displays the Nth directory (counting from the right of the list printed by dirs when invoked without options), starting with zero.
-c Clears the directory stack by deleting all of the elements.
-l Produces a longer listing; the default listing format uses a tilde to denote the home directory.
-p Causes dirs to print the directory stack with one entry per line.
-v Causes dirs to print the directory stack with one entry per line, prefixing each entry with its index in the stack.

popd
popd [+N | -N] [-n]

Remove the top entry from the directory stack, and cd to the new top directory. When no arguments are given, popd removes the top directory from the stack and performs a cd to the new top directory. The elements are numbered from 0 starting at the first directory listed with dirs; i.e., popd is equivalent to popd +0.

+N

Removes the Nth directory (counting from the left of the list printed by dirs), starting with zero.

-N Removes the Nth directory (counting from the right of the list printed by dirs), starting with zero.
-n Suppresses the normal change of directory when removing directories from the stack, so that only the stack is manipulated.

pushd
pushd [dir | +N | -N] [-n]

Save the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories.

+N

Brings the Nth directory (counting from the left of the list printed by dirs, starting with zero) to the top of the list by rotating the stack.

-N Brings the Nth directory (counting from the right of the list printed by dirs, starting with zero) to the top of the list by rotating the stack.
-n Suppresses the normal change of directory when adding directories to the stack, so that only the stack is manipulated.
dir Makes the current working directory be the top of the stack, and then executes the equivalent of `cd dir'. cds to dir.

PREVArrays UPBash Features NEXTPrinting a Prompt