Browse Source

fix cd and pushd

pull/1/head
10sr 12 years ago
parent
commit
5637a3c497
1 changed files with 8 additions and 4 deletions
  1. +8
    -4
      bashrc

+ 8
- 4
bashrc View File

@@ -216,25 +216,29 @@ cd(){
if test $# -eq 0 if test $# -eq 0
then then
pushd ~/ >/dev/null pushd ~/ >/dev/null
elif ! test -d "$1"
then
echo `basename ${SHELL}`: cd: "$1": No such file or directory 2>&1
return 1
elif test $1 = - elif test $1 = -
then then
local pwd="$PWD" local pwd="$PWD"
popd >/dev/null popd >/dev/null
pushd -n "$pwd" >/dev/null # stack last dir pushd -n "$pwd" >/dev/null # stack last dir
else else
pushd "$@" >/dev/null
pushd "$1" >/dev/null
fi fi
} }


pushd(){ pushd(){
local pwd="$PWD"
for l in $(\dirs -v -l | \grep "^ [0-9]\+ *${pwd}$" | cut -d " " -f 2 | tac)
local next="$(realpath "$1")"
for l in $(\dirs -v -l | \grep "^ [0-9]\+ *${next}$" | cut -d " " -f 2 | tac)
do do
echo $l echo $l
test $l -eq 0 && continue test $l -eq 0 && continue
popd +$l -n popd +$l -n
done done
command pushd "$@" >/dev/null
command pushd "$1" >/dev/null
} }


input(){ input(){


Loading…
Cancel
Save