Как найти файл в Linux?

«Как найти файл в Linux?» — вопрос из категории Linux и командная строка, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для навигации по тестовым артефактам, логам и конфигам на сервере постоянно использую find и locate.

1. Команда find (самая мощная и точная):

  • Поиск по имени в текущей директории и поддиректориях:

    find . -name "test_report.html"
  • Поиск без учета регистра:

    find /opt/myapp -iname "config.ini"
  • Поиск по типу:

    find . -type f -name "*.log"   # Только файлы
    find . -type d -name "screenshots" # Только директории
  • Поиск по размеру (например, большие логи >100МБ):

    find /var/log -size +100M
  • Поиск по времени модификации (файлы, измененные за последние 7 дней):

    find ./results -mtime -7
  • Комбинирование условий (логическое И):

    find . -name "*.png" -size +1M
  • Выполнение действия с найденными файлами (например, удаление старых отчетов):

    find ./old_reports -name "*.html" -mtime +30 -delete

2. Команда locate (быстрая, но использует предварительно построенную базу):

locate selenium-server-standalone

locate работает мгновенно, но может не найти свежесозданные файлы. Базу данных обновляю вручную: sudo updatedb.

3. Простой поиск в текущей директории с помощью ls и grep:

ls -la | grep "pattern"

Этот способ хорош для быстрого просмотра содержимого одной папки.