Если вы часто работаете в командной строке на компьютере или на сервере, где вообще нет графической оболочки, перед вами рано или поздно встанет задача поиска файлов. К счастью, в Linux уже встроена команда, которая позволяет найти файл в системе.

Сегодня мы поговорим об использовании команды find - поверьте, стоит научиться работать с этим мощным и удобным инструментом.

Как использовать команду find

Если говорить упрощённо, базовый синтаксис команды find выглядит следующим образом:

find /путь параметры имя_файла

Давайте разбираться с возможностями команды

Поиск файла по имени

Первый параметр - это путь. Если вы понятия не имеете, где может скрываться файл, ставьте вместо пути / - этого достаточно. Однако, поиск по всему диску может быть достаточно длительным, и если вы знаете, где может находиться файл, укажите папку, с которой надо начинать искать (например ~ для поиска в домашней папке пользователя).

Теперь перейдём к параметрам поиска. Есть два варианта поиска файла по имени:

  • name - поиск с учетом регистра имени файла

  • iname - поиск без учета регистра имени файла

Нужно помнить, что в Linux регистр имени файла имеет значение, и если нужно найти, например, файл Ubuntu.txt, то следующая команда не даст никаких результатов:

find / -name ubuntu.txt

Но можно воспользоваться командой iname и выполнить поиск без учета регистра:

find / -iname ubuntu.txt

Поиск по типу

Команда find позволяет искать не только файлы. Вот какие типы дескрипторов поддерживает поиск:

  • f - обычный файл

  • d - директория

  • l - символическая ссылка

  • c - символьное устройство

  • b - блочное устройство

Например, для поиска всех директорий внутри домашней директории текущего пользователя, названиt которых начинается с “config”, выполните следующую команду:

find ~ -type d -name config*

Вывод результатов поиска в файл

Удобная функция вывода результата выполнения команды в файл будет крайне полезна, если результатов поиска много или есть необходимость работать с ними позже. Например, для того, чтобы сохранить список всех найденных конфигурационных файлов в файл conf_search, выполните следующую команду:

find /etc -type f -name “*.conf” > conf_search

Поиск файлов по размеру

Это очень полезный параметр, когда место на диске заканчивается и нужно понять, куда оно делось. Например, чтобы найти файлы размером больше 1000 Мб, выполните следующую команду:

find / -size +1000M

Можно использовать следующие сокращения размеров:

  • c - байты
  • k - килобайты
  • M - мегабайты
  • G - гигабайты
  • b - блоки по 512 байт

Это всего несколько способов применения мощной команды . Больше способов можно найти в руководстве, выполнив команду

man find