2019-03-31 17:05:09 +08:00
.. _cmd-cd:
2018-12-17 09:39:33 +08:00
cd - change directory
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
2021-12-18 07:20:46 +08:00
**cd** [*DIRECTORY* ]
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
-----------
2021-12-18 07:20:46 +08:00
**cd** changes the current working directory.
2018-12-17 05:08:41 +08:00
2021-12-09 20:45:10 +08:00
If *DIRECTORY* is given, it will become the new directory. If no parameter is given, the :envvar: `HOME` environment variable will be used.
2018-12-17 05:08:41 +08:00
2021-12-09 20:45:10 +08:00
If *DIRECTORY* is a relative path, all the paths in the :envvar: `CDPATH` will be tried as prefixes for it, in addition to :envvar: `PWD` .
It is recommended to keep **.** as the first element of :envvar: `CDPATH` , or :envvar: `PWD` will be tried last.
2018-12-17 05:08:41 +08:00
2021-12-18 07:20:46 +08:00
Fish will also try to change directory if given a command that looks like a directory (starting with **.** , **/** or **~** , or ending with **/** ), without explicitly requiring **cd** .
2018-12-17 05:08:41 +08:00
2021-12-18 07:20:46 +08:00
Fish also ships a wrapper function around the builtin **cd** that understands `` cd - `` as changing to the previous directory.
2021-12-09 20:45:10 +08:00
See also :ref: `prevd <cmd-prevd>` .
This wrapper function maintains a history of the 25 most recently visited directories in the `` $dirprev `` and `` $dirnext `` global variables.
2021-12-18 07:20:46 +08:00
If you make those universal variables your **cd** history is shared among all fish instances.
2018-12-17 05:08:41 +08:00
2018-12-20 04:02:45 +08:00
As a special case, `` cd . `` is equivalent to `` cd $PWD `` , which is useful in cases where a mountpoint has been recycled or a directory has been removed and recreated.
2018-12-17 05:08:41 +08:00
2018-12-19 10:44:30 +08:00
Examples
2019-01-03 12:10:47 +08:00
--------
2018-12-17 05:08:41 +08:00
2018-12-19 11:14:04 +08:00
::
cd
# changes the working directory to your home directory.
cd /usr/src/fish-shell
# changes the working directory to /usr/src/fish-shell
2018-12-19 10:44:30 +08:00
See Also
2019-01-03 12:10:47 +08:00
--------
2018-12-17 05:08:41 +08:00
2020-04-04 19:01:53 +08:00
Navigate directories using the :ref: `directory history <directory-history>` or the :ref: `directory stack <directory-stack>`