2019-03-31 17:05:09 +08:00
.. _cmd-pushd:
2018-12-17 09:39:33 +08:00
pushd - push directory to directory stack
2019-01-03 12:10:47 +08:00
=========================================
2018-12-17 09:39:33 +08:00
2018-12-18 09:58:24 +08:00
Synopsis
--------
2018-12-17 05:08:41 +08:00
pushd [DIRECTORY]
2018-12-18 09:58:24 +08:00
2018-12-17 05:08:41 +08:00
2018-12-19 10:44:30 +08:00
Description
2019-01-03 12:10:47 +08:00
-----------
2018-12-17 05:08:41 +08:00
2019-03-31 17:24:04 +08:00
The `` pushd `` function adds `` DIRECTORY `` to the top of the directory stack and makes it the current working directory. :ref: `popd <cmd-popd>` will pop it off and return to the original directory.
2018-12-17 05:08:41 +08:00
Without arguments, it exchanges the top two directories in the stack.
2018-12-20 04:02:45 +08:00
`` pushd +NUMBER `` rotates the stack counter-clockwise i.e. from bottom to top
2018-12-17 05:08:41 +08:00
2018-12-20 04:02:45 +08:00
`` pushd -NUMBER `` rotates clockwise i.e. top to bottom.
2018-12-17 05:08:41 +08:00
2018-12-20 04:02:45 +08:00
See also `` dirs `` and `` dirs -c `` .
2018-12-17 05:08:41 +08:00
2019-03-31 17:28:13 +08:00
You may be interested in the :ref: `cdh <cmd-cdh>` command which provides a more intuitive way to navigate to recently visited directories.
2018-12-17 05:08:41 +08:00
2018-12-19 10:44:30 +08:00
Example
2019-01-03 12:10:47 +08:00
-------
2018-12-17 05:08:41 +08:00
2018-12-19 11:14:04 +08:00
::
pushd /usr/src
# Working directory is now /usr/src
# Directory stack contains /usr/src
pushd /usr/src/fish-shell
# Working directory is now /usr/src/fish-shell
# Directory stack contains /usr/src /usr/src/fish-shell
pushd /tmp/
# Working directory is now /tmp
# Directory stack contains /tmp /usr/src /usr/src/fish-shell
pushd +1
# Working directory is now /usr/src
# Directory stack contains /usr/src /usr/src/fish-shell /tmp
popd
# Working directory is now /usr/src/fish-shell
# Directory stack contains /usr/src/fish-shell /tmp