近頃は tcsh から bash に乗り換えたので, bash 用も作りました.

以下を .bashrc あたりに入れておけば OK.


function pus() {
	local n=0
	local pos=-1
	local pat="*"$1"*"
	local dirs=$(dirs)
	local d
	for d in $dirs; do
		case $d in $pat) pos=$n ;;
		esac
		n=$[$n+1]
	done
	if [ $pos = -1 ]; then
		echo "Not matched"
	elif [ $pos -gt 0 ]; then
		pushd "+"$pos
	fi
}