1pushd [ -qsLP ] [ arg ]
2pushd [ -qsLP ] old new
3pushd [ -qsLP ] {+|-}n
4       Change the current directory, and push the old current directory
5       onto the directory stack.  In the first form, change the current
6       directory to arg.  If arg is not specified, change to the second
7       directory on the stack (that is, exchange the top two  entries),
8       or  change  to  $HOME  if  the PUSHD TO HOME option is set or if
9                                           -  -
10       there is only one entry on the stack.  Otherwise, arg is  inter-
11       preted  as it would be by cd.  The meaning of old and new in the
12       second form is also the same as for cd.
13
14       The third form of pushd changes directory by rotating the direc-
15       tory  list.   An  argument  of  the form `+n' identifies a stack
16       entry by counting from the left of the list shown  by  the  dirs
17       command,  starting  with  zero.   An  argument  of the form `-n'
18       counts from the right.  If the PUSHD MINUS option  is  set,  the
19                                           -
20       meanings of `+' and `-' in this context are swapped.
21
22       If  the  -q (quiet) option is specified, the hook function chpwd
23       and the functions in the array $chpwd functions are not  called,
24                                            -
25       and  the new directory stack is not printed.  This is useful for
26       calls to pushd that do not change the  environment  seen  by  an
27       interactive user.
28
29       If  the  option  -q  is  not  specified  and  the  shell  option
30       PUSHD SILENT is not set, the directory  stack  will  be  printed
31            -
32       after a pushd is performed.
33
34       The  options  -s, -L and -P have the same meanings as for the cd
35       builtin.
36