Each word is checked to see if it begins with an unquoted ‘~
’.
If it does, then the word up to a ‘/
’,
or the end of the word if there is no ‘/
’,
is checked to see if it can be substituted in one of the ways
described here. If so, then the ‘~
’ and the checked portion are
replaced with the appropriate substitute value.
A ‘~
’ by itself is replaced by the value of $HOME
.
A ‘~
’ followed by a ‘+
’ or a ‘-
’ is replaced by current
or previous working directory, respectively.
A ‘~
’ followed by a number is replaced by the directory at that
position in the directory stack.
‘~0
’ is equivalent to ‘~+
’,
and ‘~1
’ is the top of the stack.
‘~+
’ followed by a number is replaced by the directory at that
position in the directory stack.
‘~+0
’ is equivalent to ‘~+
’,
and ‘~+1
’ is the top of the stack.
‘~-
’ followed by a number is replaced by the directory that
many positions from the bottom of the stack.
‘~-0
’ is the bottom of the stack.
The PUSHD_MINUS
option exchanges the effects of ‘~+
’ and ‘~-
’ where they are
followed by a number.