Как уже упоминалось, команда find выводит список найденных файлов на стандартный вывод, grep обычно ожидает поиск через стандартный вывод, если вызывается таким образом.
Может также труба найти к xargs
, и он будет " строить и выполнять командные строки из стандартного ввода ", как в
$ find . | xargs grep foo
Если у вас есть сумасшедшие имена файлов, с символами новой строки и так далее, тогда это будет лучше:
$ find . -type f -print0 | xargs -0 grep foo
и -type f
найдет только обычные файлы, поэтому никаких попыток поиска не будет .
или ..
или любые каталоги или "смешные" файлы.