Поиск в файлах

Поиск командой find текста search_phrase в файлах .php:

find ./ -name "*.php" -exec grep -H -n 'search_phrase' '{}' \;

Формат поиска командой grep:

grep -r search_phrase *
grep -rl "search_phrase" ./

Примеры поиска:

find ./ -name "*.php" -exec grep -H -n eval.*base64_decode '{}' \;

find ./ -name "*.php" -exec grep -H -n eval.*stripslashes '{}' \;

find ./ -name "*.php" -exec grep -H -n echo\s*\(\s*base64_decode '{}' \;

find ./ -name "*.php" -exec grep -H -n $bindport_pass '{}' \;

find ./ -name "*.php" -exec grep -H -n preg_replace\(\"\/\.\*\/e\" '{}' \; - находит совпадения в т.ч. и в phpmailer

find ./ -name "*.php" -exec grep -H -n default_use_ajax '{}' \;

find ./ -name "*.php" -exec grep -H -n '\3\4\2' '{}' \;

find ./ -name "*.php" -exec grep -H -n eval\s*\(\s*$mdh\s*\(\s*$md\s*\(\s*strrev '{}' \;

find ./ -name "*.php" -exec grep -H -n php_strip_whitespace '{}' \;

find ./ -type f -iname "*.php" -mtime -7 # поиск файлов, измененных в течение последних 7 дней

find ./ -type f -iname "*.php" -cmin -2 # поиск файлов, измененных за последние 2 минуты

find ./ -name "*.php" -exec grep -H -n Content-Transfer-Encoding.*Message-ID '{}' \;

find ./ -name "*.php" -exec grep -H -n touch\( '{}' \; - тоже находит совпадения в файлах джумлы

find ./ -name "*.php" -exec grep -H -n ShellFinder '{}' \;

find ./ -name "*.php" -exec grep -H -n \|blackberry\| '{}' \;

find ./ -name "*.php" -exec grep -H -n _SAPE_USER '{}' \;

find ./ -name "*.php" -exec grep -H -n table.*toolsTbl '{}' \;

find ./ -name ".htaccess" -exec grep -H -n android '{}' \;

find ./ -name "*.php" -exec grep -H -n move_uploaded_file '{}' \;
find ./ -name "*.php" -exec grep -H -n array_diff_ukey '{}' \;
find ./ -name "*.php" -exec grep -H -n libworker '{}' \;

find ./ -name "*.php" -exec grep -H -n -i eval\s*\( '{}' \; - находит и безобидные выражения. но больше шансов найти заразу если она есть
find ./ -name "*.php" -exec grep -H -n create_function '{}' \;

Параметры:

-i - отключает регистрозависимость. То есть строки Test, TEST, TeSt и т.д тоже будут найдены;
 -H - позволяет вывести имя файла, в котором найдено вхождение строки;
 -n - выводит номер строки найденного вхождения.

Поиск и удаление файлов:

find ./ -name "ccs.php" -delete

находит и удаляет .jpg файлы с размером 1742 байта:
find ./ -type f -name "*.jpg" -size 1742c -delete

-delete обязательно указывать в самом конце, иначе будут удалены все файлы и папки от текущего местоположения

Поиск POST запросов в логах сервера, с выводом в текстовый файл:

find ./ -name "*.log" -exec grep -HnE '"POST /.*?" (200|301|303) ' '{}' \; > 123.txt

Еще вариант поиска:

find ./ -type f | xargs grep 'string_search'

Поиск пустых файлов

find . -type f -empty

Удаление пустых файлов

find . -type f -empty -exec rm {} \;

Поиск пустых директорий

find . -type d -empty

Удаление пустых директорий

find . -type d -empty -exec rmdir {} \;