pushd [ -qsLP ] [ arg ]
pushd [ -qsLP ] old new
pushd [ -qsLP ] {+|-}n
       Change the current directory, and push the old cur-
       onto  the  directory  stack.   In  the  first form,
       directory to arg.  If arg is not specified,  change
       directory  on  the stack (that is, exchange the top
       or  change  to  $HOME  if  the PUSHD TO HOME option
       there  is  only one entry on the stack.  Otherwise,
       preted  as it would be by cd.  The meaning  of  old
       second form is also the same as for cd.

       The third form of pushd changes directory by rotat-
       tory  list.   An  argument  of  the form `+n' iden-
       entry  by  counting from the left of the list shown
       command,  starting  with  zero.   An  argument   of
       counts  from  the right.  If the PUSHD MINUS option
       meanings  of  `+'  and  `-'  in  this  context  are

       If   the   -q (quiet) option is specified, the hook
       and the functions in the array $chpwd functions are
       and   the new directory stack is not printed.  This
       calls to pushd that do not change the   environment
       interactive user.

       If   the   option  -q  is  not  specified  and  the
       PUSHD SILENT is not set, the directory  stack  will
       after a pushd is performed.

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