pushd [ arg ]
pushd old new
pushd {+|-}n
       Change the current  directory,  and  push  the  old
       current 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
       rotating 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,
       starting  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
       directory  stack  will  be printed after a pushd is
       performed.
