| @@ -118,7 +118,7 @@ alias psaux="ps auxww" | |||||
| alias q=exit | alias q=exit | ||||
| alias e3=e3em | alias e3=e3em | ||||
| #alias dirs="dirs -v -l | \grep -v \$(printf '%s$' \$PWD)" | #alias dirs="dirs -v -l | \grep -v \$(printf '%s$' \$PWD)" | ||||
| alias dirs="dirs -v -l" | |||||
| alias dh="dirs -v -l" | |||||
| alias po=popd | alias po=popd | ||||
| alias pu=pushd | alias pu=pushd | ||||
| alias sudo="sudo " # use aliases through sudo | alias sudo="sudo " # use aliases through sudo | ||||
| @@ -219,9 +219,8 @@ cd(){ | |||||
| elif test $1 = - | elif test $1 = - | ||||
| then | then | ||||
| local pwd="$PWD" | local pwd="$PWD" | ||||
| echo $OLDPWD | |||||
| command cd $OLDPWD | command cd $OLDPWD | ||||
| command pushd -n "$pwd" >/dev/null # stack last dir | |||||
| pushd -n "$pwd" >/dev/null # stack last dir | |||||
| elif ! test -d "$1" | elif ! test -d "$1" | ||||
| then | then | ||||
| echo `basename ${SHELL}`: cd: "$1": No such file or directory 1>&2 | echo `basename ${SHELL}`: cd: "$1": No such file or directory 1>&2 | ||||
| @@ -229,17 +228,20 @@ cd(){ | |||||
| else | else | ||||
| pushd "$1" >/dev/null | pushd "$1" >/dev/null | ||||
| fi | fi | ||||
| __dirs_rm_dup "$PWD" | |||||
| echo "$PWD" | |||||
| } | } | ||||
| pushd(){ | |||||
| local next="$(realpath --no-symlinks "$1")" | |||||
| for l in $(\dirs -v -l | \grep "^ *[0-9]\+ \+${next}$" | \grep -o "^ *[0-9]\+ " | tac) | |||||
| __dirs_rm_dup(){ | |||||
| for d in "$@" | |||||
| do | do | ||||
| echo $l | |||||
| test $l -eq 0 && continue | |||||
| popd +$l -n | |||||
| local next="$(realpath --no-symlinks "$d")" | |||||
| for l in $(\dirs -v -l | cut -d " | |||||
| " -f 2- | \grep "^ *[0-9]\+ \+${next}$" | \grep -o "^ *[0-9]\+ " | tac) | |||||
| do | |||||
| popd +$l -n >/dev/null | |||||
| done | |||||
| done | done | ||||
| command pushd "$@" >/dev/null | |||||
| } | } | ||||
| input(){ | input(){ | ||||