diff options
| -rw-r--r-- | .bashrc | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -218,11 +218,20 @@ builtin pushd "${1:-$HOME}" >/dev/null } popd() { + ___dirchanged="$PWD" + builtin popd >/dev/null 2>&1 && forward_dirs[${#forward_dirs[@]}]="$___dirchanged" || builtin popd +1 + } + # Huge thanks to: https://tldp.org/LDP/abs/html/arrays.html#EMPTYARRAY + repushd() { ___dirchanged="y" - builtin popd >/dev/null 2>&1 || builtin popd +1 + [ "${#forward_dirs[@]}" -eq 0 ] && echo "bash: repushd: forward directory stack empty" && return 1 + + builtin pushd "${forward_dirs[${#forward_dirs[@]}-1]:-$HOME}" >/dev/null + unset forward_dirs[${#forward_dirs[@]}-1] } alias cd="pushd" # change directory alias bd="popd" # back directory + alias fd="repushd" # }}} # Processes {{{ |
