1

У меня есть несколько WordPress сайтов, которые размещены в среде общего хостинга. Как и на каждом WordPress сайте, есть каталог для загрузки. Я хотел бы регулярно искать потенциально вредоносные файлы, которые находятся в этих папках, но я не хочу, конечно, делать это один за другим.

Итак, вопрос в том, как я могу найти во всех каталогах "uploads" файл с расширением «.php».

Например:

find . -type d -iname "uploads"

получает все папки "загрузок" в моем корневом каталоге, но я также хочу искать в этих каталогах

1 ответ1

3

Можно перенаправить вывод вашей команды в другую, но вы можете искать оба критерия одновременно, используя grep и Regular Expressions:

find . -type f | grep -i "/uploads/.*\.php$"

Как это устроено:

  • find . -type f выводит список всех файлов в текущем каталоге и его подкаталогах.

  • grep -i "/uploads/.*\.php$" фильтрует вывод:

    • -i делает поиск нечувствительным к регистру

    • /uploads/.*\.php$ - это регулярное выражение, которому должна соответствовать строка для отображения

      • /uploads/ php это именно то

      • .* - любое количество символов любого типа

      • \. это буквальное .

      • $ сигнализирует конец строки

Вы можете достичь того же результата с

find . -type f -iregex ".*/uploads/.*\.php"

но синтаксис будет хлопотным, если вы знаете регулярные выражения из grep , Perl, PHP, JavaScript и т. д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .