Eu acho que essa função é algo parecido com o que você gostaria de realizar?
rexcd () {
search_base=/path/to/base
pattern=$@
directories=( $(find "$search_base" -type d -name "*${pattern}*" 2>/dev/null) )
PS3="Which directory should we change to? "
select dir in "${directories[@]}"; do
case $dir in
*) cd "$dir";break;;
esac
done
}
Note que, na minha máquina, isso vai apresentar muitas coisas que você não quer se você procurar por palavras comuns, dependendo de quão ampla é a sua base de busca.
Em uso:
$ rexcd someweirddir && pwd
1) /Users/jessebutryn/tmp/someweirddir1
2) /Users/jessebutryn/tmp/someweirddir2
Which directory should we change to? 2
/Users/jessebutryn/tmp/someweirddir2