Поиск файлов более определенного объема (более 100MB):
find / -size +100M
Поиск строки «STRING» в каталоге /home/
find /home/ -type f -exec grep -H "STRING" {} \;
Поиск всех php файлов (файлов, которые заканчиваются на .php) и содержащих строку «STRING»
find /home/ -type f -name "*.php" -exec grep -H "STRING" {} \;
Рекурсивный поиск в указанном каталоге, всех файлов содержащих eval(
grep -r "eval(" /home/
Поиск с заменой. Утилита SED.
Ищем текст old_text и меняем на new_text.
Поиск осуществляется в файлах (именно в файлах), которые в директории /home и поддиректориях.
find /home -type f -print -exec sed -i -r 's/old_text/new_text/g' {} \;
Разберем ключи и что есть что:
find | Команда поиска. |
/home | Место где искать. |
-type f | Тип файл. Ищем только файлы. |
Выводим все файлы. | |
-exec | Выполнить команду. Обязательно должна заканчиваться \; |
Разберем утилиту SED | |
---|---|
sed {} \; | Утилита для работы с текстом. Утилита обязательно заканчивается \; |
‘s/old_text/new_text/g’ | s — Замена (перед первым слешом). g — Глобально (после последнего слеша). old_text — Текст, который ищем. new_text — Новый текст. Вместо слеша, может использовать любой другой символ: $ или | или % и т.д. |
Копирование файлов.
Копируем файлы из папки home в папку home/backup. Копируем только те файлы, которые редактировались за последние 30 дней (-mtime -30).
find /home -type f -mtime -30 -exec cp {} /home/backup \;
-mtime -30 = -mtime с параметром -30 указывает, что нужно искать файлы, менявшиеся за последние 30 дней.