Вероятно, это занимает время из-за -r *
(рекурсивно, все файлы / каталоги)?
Рассмотрим
find -type f -print0 | xargs -0trn10 grep -l 'php \$[a-zA-Z]*=.as.;'
, который будет обрабатывать файлы партиями (макс.) 10 и печатать эти команды по ходу.
Конечно, таким образом вы, вероятно, можете оптимизировать чертовски из этого, с помощью простой меры, как
find -type f -iname '*.php' -print0 | xargs -0trn10 grep -l 'php \$[a-zA-Z]*=.as.;'
Вид связанных:
Вы можете делать подобные вещи без поиска для небольших деревьев, с недавним bash:
shopt -s globstar
grep -l 'pattern' **/*.php