pushd [ -sLP ] [ arg ]
pushd [ -sLP ] old new
pushd [ -sLP ] {+|-}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  inter-
       preted  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 direc-
       tory  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.

       The options -s, -L and -P have the same meanings as for  the  cd
       builtin.
