まず, 以下のファイルを適当な場所におきます.
#! /bin/csh
# set echo
set noglob
set dirs=`dirs`
set i=2
set j=$#dirs
set pat=$arg[1]

if ( "$pat" =~ \-* ) then
	@ i = $j + $pat
	pushd +$i
	unset noglob i j dirs arg pat
	exit
else if ( "$pat" == "" ) then 
	set pat = ~
else if ( "$pat" =~ *\$ ) then
	set pat = *$pat:s/$//
else
	set pat = *$pat*
endif

while ( $i <= $j )
	if ( X$dirs[$i] =~ X$pat ) then
		if ( $i == 1 ) then
			dirs
		else
			@ i -= 1
			pushd +$i
		endif
		unset i
		break;
	endif
	@ i += 1
end
if ( $?i ) then
	echo $pat not matched
	unset i
endif
unset noglob j dirs arg pat

しかるのち, 以下の alias を設定します.

alias   pus     'set noglob; set arg=\!*; unset noglob; source 上のファイル名'