Поиск путей файлов по их содержимому bash

find . \ -type f \ -size -2M \ \( -name "*.php" -o -name "*.js" -o -name "*.html" \) \ -exec grep -l "1 2" \ {} + С исключениями find . \ -path "./exception7" -prune -o \ -type f \ -size -2M \ \( -name "*.php" -o -name "*.js" -o -name "*.html" \) \ -exec grep -l "1 2" \ {} + ### Пояснение к команде: 1. **`find .`**: Команда `find` начинает поиск с текущей директории (`.`). 2. **`-path "./exception7" -prune -o`**: Эта часть команды исключает из поиска директорию `./exception7` и все её поддиректории. - `-path "./exception7"`: Условие, которое проверяет соответствие текущего пути заданному (`./exception7`). - `-prune`: Признак того, что найденная директория должна быть исключена из дальнейшего поиска. - `-o`: Оператор "или" (OR), который позволяет добавлять дополнительные условия для поиска. 3. **`-type f`**: Указывает, что мы ищем только файлы (`f` для files). 4. **`-size -2M`**: Фильтрует файлы по размеру. Значение `-2M` означает, что размер файла должен быть меньше 2 мегабайтов (не включая 2МБ). 5. **`\( -name "*.php" -o -name "*.js" -o -name "*.html" \)`**: Это группировка условий для поиска файлов с определенными расширениями: `.php`, `.js` и `.html`. - `-name "*.php"`: Ищет файлы, имена которых заканчиваются на `.php`. - `-o`: Оператор "или" (OR). - `-name "*.js"`: Ищет файлы, имена которых заканчиваются на `.js`. - `-o`: Оператор "или" (OR). - `-name "*.html"`: Ищет файлы, имена которых заканчиваются на `.html`. 6. **`-exec grep -l "1 2" {} +`**: Команда выполняется для каждого найденного файла. - `grep`: Поиск строки "1 2" в тексте файлов. - `-l`: Выводит только имена файлов, где была найдена указанная строка. - `{}`: Заменяется на имя текущего файла, переданного команде `find`. - `+`: Выполняет команду для всех найденных файлов одновременно. Эта команда полезна для поиска строки "1 2" в файлах с определенными расширениями, исключая указанную директорию и файлы большего размера, чем заданный предел.