Вы ищете имя файла или слово внутри файла? grep ищет в файлах, что, кажется, то, что вы хотите.
grep использует регулярные выражения - фактически это то, что означает часть re. Таким образом, он не использует обычные символы подстановки bash; то есть, abc*
он не найдет слова, начинающиеся с abc, он найдет слова, начинающиеся с ab, затем ноль или более с. Но да, если вы просто дадите ему образец, он найдет его где угодно, без знания целых слов. Если вы хотите найти целые слова, вам нужно создать регулярное выражение, чтобы сказать это.
Но, как и большинство команд, вам нужно поставить имя файла (ов) в конце команды, так что ваш пример будет просто сидеть и ждать имя файла.
Как сказал @plink, используйте
grep -r -o -i "your_string" *
(или *.*
, или другие спецификации файлов). Ошибки могут быть проигнорированы. Если вы получаете много ошибок, вы можете добавить 2>/dev/null
в конец, что перенаправит stderr на нулевое устройство.
grep -r -o -i "your_string" *
(с "кавычками).