Также есть:
find directory_name -type f -print0 | xargs -0 grep -li word
но это может быть немного много для новичка.
find
- это каталог-обходчик общего назначения, -type f
означает «искать простые файлы, а не каталоги и именованные каналы и что у вас есть», -print0
означает «печатать их на стандартном выводе, используя нулевые символы в качестве разделителей ". Выходные данные из find
отправляются на xargs -0
, и этот стандартный ввод захватывается кусками (чтобы избежать ограничений длины командной строки), используя нулевые символы в качестве разделителя записей (а не стандартный перевод строки), и применяет grep -li word
к каждому набор файлов. В grep
, -l
означает «список файлов, которые соответствуют», а -i
означает «без учета регистра»; обычно вы можете комбинировать опции одного символа, чтобы вы видели -li
чаще, чем -l -i
.
Если вы не используете -print0
и -0
, то у вас возникнут проблемы с именами файлов, которые содержат пробелы, поэтому их использование - хорошая привычка.