Також є:
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тоді у вас виникнуть проблеми з іменами файлів, які містять пробіли, тому їх використання є доброю звичкою.
*? Це або призведе до розширення шаблону підстановки (якщо є назви файлів, що відповідають шаблону підстановки), або grep сприйме це як оператор повторення 0 або більше для символу, що передує*.