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" ~/
Содержание