Ви шукаєте ім'я файлу чи слово всередині файлу? grep здійснює пошук всередині файлів, що, здається, саме те, що ви хочете.
grep використовує регулярні вирази - насправді саме це і є частиною "re". Таким чином, він не використовує звичайні баш-карти; тобто abc*
не знайшлося б слів, що починаються з abc, воно знайде слова, що починаються з ab, а потім до нуля або більше c. Але так, якщо ви просто даєте йому шаблон, він знайде його де завгодно, не знаючи цілих слів. Якщо ви хочете знайти цілі слова, вам потрібно створити регулярний вираз, щоб сказати це.
Але, як і більшість команд, вам потрібно поставити ім'я файлів у кінці команди, щоб ваш приклад просто сидів там і чекав імені файлу.
Як сказав @plink, використовуйте
grep -r -o -i "your_string" *
(або *.*
, або інший filepec). Помилки можна ігнорувати. Якщо у вас багато помилок, ви можете додати 2>/dev/null
їх до кінця, що перенаправить stderr на нульовий пристрій.
grep -r -o -i "your_string" *
(з "цитатами")