Параметр -name
разрешает использование шаблонов стилей в стиле fnmatch , которые не являются регулярным выражением и не имеют отрицательных шаблонов. Итак, вам нужен один из двух вариантов (если вы хотите отфильтровать внутри операции поиска):
Вместо этого вы можете использовать RE. Вы должны знать, что регулярные выражения соответствуют всему пути, а не только имени, поэтому что-то вроде этого должно работать:
find ./src -regex '.*/[^_/][^/]*\.php'
Альтернативой является объединение -name
с выражением отрицания (-a -not
означает «а не»):
find ./src -name '*.php' -a -not -name '_*'