2.11.3. Поиск файлов и каталогов через консоль
Через консоль с помощью утилиты find можно искать файлы и каталоги по различным критериям. В командах вместо точки . можно указывать путь к конкретному каталогу, внутри которого нужно выполнять поиск.
По названию
Для поиска всех файлов и каталогов по названию (без учёта регистра) в текущем каталоге и всех его подкаталогах используйте команду:
find . -iname NAME
В команде замените NAME на название искомого файла или каталога.
По расширению
Для поиска всех файлов с расширением .php (без учёта регистра) в текущем каталоге и всех его подкаталогах используйте команду:
find . -iname '*.php'
По размеру
Для поиска всех файлов размером более 1000 КБ в текущем каталоге и всех его подкаталогах используйте команду:
find . -size +1000k
Для поиска всех файлов размером менее 500 Б в текущем каталоге и всех его подкаталогах используйте команду:
find . -size -500b
Размер можно указывать в разных форматах: 10 — байты, 10k — КБ, 10M — МБ, 10G — ГБ.
По времени изменения
Для поиска всех файлов и каталогов, изменённых за последние 24 часа, в текущем каталоге и всех его подкаталогах используйте команду:
find . -mtime 1
Для поиска всех файлов и каталогов, изменённых за последние 15 минут, в текущем каталоге и всех его подкаталогах используйте команду:
find . -mmin 15
Для поиска всех файлов и каталогов, изменённых от 5 до 10 дней назад, в текущем каталоге и всех его подкаталогах используйте команду:
find . -mtime 5 -mtime -10 -daystart
По наличию фрагмента строки
Для поиска всех файлов с расширением env, php, xml, yml или ini, содержащих указанный фрагмент строки, в текущем каталоге и всех его подкаталогах используйте команду:
find ./ -type f -regex ".*\.\(env\|php\|xml\|yml\|ini\)" -exec grep -i -H "STRING" {} \;
В команде замените STRING на искомый текст.
Для поиска по всем файлам во всех каталогах рекурсивно используйте команду:
grep -rn "STRING" ~/