Você pode fazer isso com globs e expansão do parâmetro . Você não precisa usar find
se tiver uma versão do bash que tenha globstar
para ativar a sintaxe **
(bash4 +).
# Enable '**', and expand globs to 0 elements if unmatched
shopt -s globstar nullglob
# Put all files matching *.clj or *.cljs into ${files[@]} recursively
files=(dir1/**/*.clj{,s})
# Print all files delimited by newlines, with all leading directories stripped
printf '%s\n' "${files[@]##*/}"
Para aplicar alguma transformação arbitrária, substitua a última linha por:
for file in "${files[@]}"; do
some-arbitrary-transformation <<< "$file"
done