信息来源: CU
如果你的目录层次很深的话,这个shell会很方便的直接切换到目的目录,例如
当前目录/usr/home,而目录desdir在/usr/home/app/local/opp/william/desdir
直接打入
$cddesdir,便可直接从当前目录/use/home切换到/usr/home/app/local/opp/william/desdir
配置一下.profile,加入两行
../bin/chdir
aliascd='chdir'
file:chdir
#####################################################
#autofindyourdirectory
#Writer:william2006beijing
#addthefollowingtwolinein$HOME/.profile
#../bin/chdir
#aliascd='chdir'
#####################################################
chdir()
{
if[-z"$1"];then
cd
PS1="[$PWD]"
exportPS1;
return
elif["$1"=-];then
cd-
PS1="[$PWD]"
exportPS1;
return
else
if[-d"./$1"];then
cd./$1
PS1="[$PWD]"
exportPS1;
return
fi
fi
forLINEin`find$HOME-typed-print|grep-c\/$1$`
do
if[$LINE-eq0];then
echo"yourdirectory$1isnotexsit($LINE)!"
return
fi
done
forDirin`find$HOME-typed-print|grep\/$1$`
do
if[$LINE-gt1];then
if[!-d"$Dir"];then
echo"$Dirisnotadirectory"
return
fi
printf"$Dir\t\t...doyouwanttogo?default(y)"
readYESNO
#echo"(y/n)="$YESNO
if[-z"$YESNO"];then
YESNO=y
fi
case"$YESNO"in
[yY]|[yY][eE][sS])
YESNO=y;;
[nN]|[nN][oO])
YESNO=n;;
*)
YESNO="";;
esac
if["$YESNO"=y];then
cd$Dir
PS1="[$PWD]"
exportPS1;
return
else
continue
fi
else
cd$Dir
PS1="[$PWD]"
exportPS1;
return
fi
done
}