pushd [ arg ]
pushd old new
pushd {+|-}n
       Change the current directory, and push the old cur-
       rent directory onto the directory  stack.   In  the
       first  form,  change  the current directory to arg.
       If arg is  not  specified,  change  to  the  second
       directory  on  the stack (that is, exchange the top
       two  entries),  or   change   to   $HOME   if   the
       PUSHD TO HOME option is set or if there is only one
       entry on the stack.

       If arg is `-',  change  to  $OLDPWD,  the  previous
       directory.   If  a directory named arg is not found
       in the current directory and arg does not contain a
       slash, search each component of the shell parameter
       cdpath.  If the option CDABLE VARS is  set,  and  a
       parameter  named arg exists whose value begins with
       a slash, treat its value as the directory.

       If the option PUSHD SILENT is not set,  the  direc-
       tory  stack  will  be printed after a pushd is per-
       formed.

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

       The third form of pushd changes directory by rotat-
       ing the directory list.  An argument  of  the  form
       `+n'  identifies a stack entry by counting from the
       left of the list shown by the dirs command,  start-
       ing with zero.  An argument of the form `-n' counts
       from the right.  If the PUSHD MINUS option is  set,
       the  meanings  of  `+'  and `-' in this context are
       swapped.
