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.  Otherwise, arg is  interpreted
       as  it  would be by cd.  The meaning of old and new
       in the second form is also the same as for cd.

       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.

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