Ответы:
Если bash не может найти совпадение, он передает литеральную строку приложению с *нерасширенным s. Например:
$ ls
foo
$ cat /tmp/test
echo $1
$ /tmp/test *foo*
foo
$ /tmp/test *bar*
*bar*
bashрасширен, *foo*потому что это соответствует, но прошло *bar*непосредственно, потому что это не так. nullglobОпция указывает Баш разрешить шаблоны несовпадающих пустую строку вместо:
$ shopt -s nullglob
$ /tmp/test *bar*
$
zsh: no matches found.
no_nomatchвызвать это поведение.
find . -name *foo*сfind . -name '*foo*'ней позволит шаблонные матчи на работу , как и ожидалось.