O problema é que seu asterisco é interpretado pelo shell ANTES de ser passado para find
como argumento.
Ou seja. se você tiver um arquivo como script.sh
no diretório de trabalho atual de onde você o encontrou, seu comando irá procurar like
this:
#command you type:
find . -name *.sh
#command the shell creates:
find . -name script.sh
Então, no seu caso, é a primeira correspondência para *.sh
em a_root_dir
, conforme interpretado pelo shell, e seu comando é literalmente:
find . -name run.sh
O que você precisa fazer é usar aspas duras para suprimir o shell que expande o asterisco antes que find
seja executado:
find . -name '*.sh'