У меня есть куча сайтов wordpress, размещенных в среде общего хостинга. Как и в каждом сайте wordpress, есть каталог "uploads". Я хотел бы регулярно искать потенциально вредоносные файлы, которые находятся в этих папках, но я не хочу делать это по одному.
Итак, вопрос в том, как мне выполнить поиск файла с расширением «.php» во всех каталогах «загрузки»?
Например:
find . -type d -iname "uploads"
выводит все папки «загрузки» в моем корневом каталоге, но я также хочу искать в этих директориях
решение1
Вы можете передать вывод из одной команды в другую, но вы можете выполнить поиск по обоим критериям одновременно, используяgrep
иОбычные выражения:
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 и т. д.