Для близкого POSIX-эквивалента grep -l word./*
, который разбивает список файлов по мере необходимости, чтобы избежать ограничения execve()
на размер аргументов, вы можете сделать:
find -L. ! -name. -prune ! -name '.*' -type f -exec \
grep -l word /dev/null {} +
! -name. -prune
- не возвращаться в подкаталоги --L
в сочетании с -type f
заключается в поиске только в обычных файлах (после разрешения символической ссылки)(бонус по сравнению с grep..../*
подходом, который просматривал бы файлы любого типа)! -name '.*'
для исключения скрытых файлов, как ./*
/dev/null
чтобы убедиться, что имя файла всегда печатается (еще один бонус ). Заметным отличием является то, что список файлов не будет сортироваться.
Сообщение в файле журнала не имело значения. Когда я добавил touch /tmp/afile
, я обнаружил, что скрипт работает. Проблема заключалась в том, что я использовал $0 в качестве интерфейсного устройства для маршрутизации, хотя должен был использовать $1