Respuestas:
Si bash no puede encontrar una coincidencia, pasa la cadena literal a la aplicación con *s sin expandir. Por ejemplo:
$ ls
foo
$ cat /tmp/test
echo $1
$ /tmp/test *foo*
foo
$ /tmp/test *bar*
*bar*
bashse expandió *foo*porque coincidía, pero pasó *bar*directamente porque no lo hizo. La nullglobopción le dirá a bash que resuelva patrones no coincidentes con la cadena vacía:
$ shopt -s nullglob
$ /tmp/test *bar*
$
zsh: no matches found.
no_nomatchque desencadenar este comportamiento.
find . -name *foo*confind . -name '*foo*', permitirá que las coincidencias con comodines funcionen como se esperaba.