cd [ -qsLP ] [ arg ]
cd [ -qsLP ] old new
cd [ -qsLP ] {+|-}n
       Change the current directory.  In the first form, change the current
       directory  to arg, or to the value of $HOME if arg is not specified.
       If arg is `-', change to the previous directory.

       Otherwise, if arg begins with a slash, attempt to change to the  di-
       rectory given by arg.

       If arg does not begin with a slash, the behaviour depends on whether
       the  current  directory  `.'  occurs in the list of directories con-
       tained in the shell parameter cdpath.  If it does not, first attempt
       to change to the directory arg under the current directory,  and  if
       that  fails  but cdpath is set and contains at least one element at-
       tempt to change to the directory arg under each component of  cdpath
       in  turn  until successful.  If `.' occurs in cdpath, then cdpath is
       searched strictly in order so that `.' is only tried at  the  appro-
       priate point.

       The  order  of  testing cdpath is modified if the option POSIX_CD is
       set, as described in the documentation for the option.

       If no directory is found, the option CDABLE_VARS is set, and a para-
       meter named arg exists whose value begins with a  slash,  treat  its
       value as the directory.  In that case, the parameter is added to the
       named directory hash table.

       The  second form of cd substitutes the string new for the string old
       in the name of the current directory, and tries to  change  to  this
       new directory.

       The third form of cd extracts an entry from the directory stack, and
       changes  to that directory.  An argument of the form `+n' identifies
       a stack entry by counting from the left of the  list  shown  by  the
       dirs  command,  starting  with  zero.   An argument of the form `-n'
       counts from the right.  If the PUSHD_MINUS option is set, the  mean-
       ings  of  `+'  and `-' in this context are swapped.  If the POSIX_CD
       option is set, this form of cd is not recognised and will be  inter-
       preted as the first form.

       If  the  -q (quiet) option is specified, the hook function chpwd and
       the functions in the array chpwd_functions are not called.  This  is
       useful for calls to cd that do not change the environment seen by an
       interactive user.

       If  the -s option is specified, cd refuses to change the current di-
       rectory if the given pathname contains symlinks.  If the  -P  option
       is  given  or  the CHASE_LINKS option is set, symbolic links are re-
       solved to their true values.  If the -L  option  is  given  symbolic
       links are retained in the directory (and not resolved) regardless of
       the state of the CHASE_LINKS option.

chdir  Same as cd.
