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" ~/