Шпаргалка: искать файлы по имени, типу и глубине
Ограничьте дерево поиска GNU find, передайте шаблон имени без раскрытия оболочкой и отделите отбор объектов от действий над ними.
Когда открыть эту шпаргалку
Поиск по имени и поиск по содержимому решают разные задачи. find обходит дерево и проверяет свойства объектов; grep читает данные. Начинайте с узкого каталога, чтобы не просматривать лишние деревья и не принимать ожидаемые ошибки доступа за неожиданную поломку.
Выбор команды
Все выражения ниже только выводят найденные пути. Вывод в терминал удобен для человека; для передачи произвольных имён другой программе важны безопасные границы записей.
| Что выяснить | Команда или выражение | Как читать результат |
|---|---|---|
| Обычные файлы | find . -type f -print | Текущий каталог — корень обхода. |
| Шаблон имени | find . -type f -name '*.log' -print | Кавычки оставляют шаблон для find. |
| Только первый уровень | find . -maxdepth 1 -type f -print | Глубина начальной точки равна нулю. |
| Непустая глубина без корня | find . -mindepth 1 -maxdepth 2 -type d -print | Выбор каталогов на первом и втором уровнях. |
| Границы имён для программы | find . -type f -print0 | NUL отделяет имена даже при newline внутри имени. |
Короткая последовательность
Осмотрите журналы только на двух уровнях текущего дерева. Команда не удаляет объекты и не меняет их права.
find . -maxdepth 2 -type f -name '*.log' -printПроверка вывода
Пустой список не гарантирует, что во всём компьютере нет журналов. Результат ограничен выбранной точкой, глубиной, типом и доступом. Диагностика stderr может указывать, что часть дерева не удалось прочитать.
Границы применения
По умолчанию GNU find использует -P и не следует по символьным ссылкам. Включение -L меняет область обхода и смысл некоторых проверок. Не заменяйте -print на -delete ради эксперимента на реальных данных; сначала подтвердите весь список и используйте учебную среду.
Технические источники
Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.
- Руководство find(1)
Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.
Примеры для собственной Linux-системы с Bash и указанными утилитами. Наличие пакетов и набор опций проверьте в установленной версии; браузерный терминал поддерживает только своё подмножество.
От материала к практике
Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.