Поиск файла в Linux

В операционных системах семейства Linux все объекты ОС: и данные, и управляющие элементы - являются файлами в файловой системе. Поэтому поиск файлов становится очень важной задачей. И если опытные пользователи уже знают, что и где находится, то для новичков будет очень полезным узнать, как найти местоположение того или иного файла, будь то программа, изображение или документ.

В Linux существует множество способов поиска, как в графическом интерфейсе, так и через командную строку. В сегодняшней статье мы разберём, как выполнять поиск файла в Linux с помощью всех этих средств. Но начнём с программ, у которых есть графический интерфейс.

Поиск файла в Linux через графический интерфейс

1. Главное меню системы

Главное меню операционной системы позволяет, как правило, не только запускать программы, но и искать их, а также искать файлы. Такая возможность есть как в Gnome, так и в KDE. В главном меню Gnome вы можете ввести нужную фразу для поиска:

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

2. Файловые менеджеры

Большинство файловых менеджеров тоже предоставляют возможности поиска файлов, в том числе Dolphin и Nautilus. Здесь вы можете выбрать папку, в которой будет выполняться поиск, а также настроить дополнительные параметры поиска. В Nautilus для запуска поиска вам достаточно нажать кнопку со значком лупы, а потом ввести данные в строку поиска. Например, найдём все фото, сделанные 18 ноября.

Открыв стрелочку дополнительных параметров можно выбрать период, за который был создан интересующий нас документ, а также тип документа.

В качестве поискового запроса можно использовать символы подстановки: ? и *. Но для более точного поиска придётся использовать сторонние программы.

3. Gnome Search

Утилита Gnome Search по умолчанию поставляется не всегда, но вы можете установить её из центра приложений или через официальные репозитории. Она предоставляет такие же возможности, как и файловый менеджер, плюс здесь можно искать по содержимому файлов, что иногда очень удобно.

 

4. SearchMonkey

Следующая программа в нашем списке - SearchMonkey. Она позволяет искать файлы по регулярным выражениям. Здесь тоже можно выполнять поиск файла, как по имени, так и по содержимому фала, можно выбрать диапазон дат и так далее. Но основное преимущество этой программы - возможность везде использовать регулярные выражения.

5. Recoll

Если вам приходится работать с большой библиотекой текстовой информации и искать данные по содержимому файла, то вам будет полезна утилита Recoll. Это полноценный поисковый движок для поиска документов. Установить программу можно из официальных репозиториев:

sudo apt install recoll

Сразу же после запуска она предложит вам создать индекс документов, которые есть в вашем домашнем каталоге.

И только после создания индекса вы сможете выполнять по нему поиск. Далее, вам будет достаточно ввести запрос, например Wi-Fi, и вы увидите все файлы, которые содержат это слово с примерами вхождений, отсортированные по релевантности:

Для работы с большим количеством текстовых данных это может быть очень удобно. Программа понимает множество офисных форматов, среди которых pdf, djvu, doc, docx, odf, а также умеет находить такие файлы в архивах.

Поиск файлов в Linux через терминал

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

1. find

Самая часто используемая команда поиска файла в Linux на данный момент - это find. Она имеет множество возможностей: вы можете искать файлы по имени, дате изменения, создания, использовать регулярные выражения и маски, выполнять определённые действия для найденных файлов, настраивать глубину поиска и многое другое. Например, найдем все файлы, которые начинаются на "Снимок" в папке ~/Изображения:

find ~/Изображения -iname "Снимок*"

Более подробную информацию об этой команде читайте в статье команда find.

2. locate

Команда locate считается устаревшей и уже была удалена из многих дистрибутивов. Она выполняет поиск не в реальном времени, как find, а по ранее созданной базе файлов, но она делает только поиск файла по имени Linux. Вы вводите слово, которое вас интересует, и утилита выдаёт все известные ей файлы, имя которых содержит такое слово. Возможно использовать регулярные выражения. Например, найдем все файлы, в имени которых содержится passwd:

locate passwd

Обратите внимание, что если файл был добавлен после создания базы, то он найден не будет.

3. grep

Утилита grep позволяет не только фильтровать вывод других команд, но и искать по содержимому файловой системы. Для этого достаточно использовать опцию -r и указать папку, в которой надо искать текст. Например, найдём все файлы в /etc/, которые содержат строчку error_reporting:

sudo grep -r "error_reporting" /etc/

С помощью grep очень удобно искать, где находится нужная конфигурация или же проверять, не содержат ли файлы с кодом чего-нибудь подозрительного. Подробнее про использование grep читайте в статье поиск текста в файлах Linux.

4. whereis

Утилита whereis достаточно простая и решает только одну задачу. Она показывает, где находится исполняемый файл, переданной ей программы. Например, если мы хотим узнать, где лежит grep, достаточно выполнить:

whereis grep

Выводы

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

15 комментариев

  1. Artic Декабрь 3, 2018 Ответить
  2. VecH Декабрь 3, 2018 Ответить
    • Серёга Декабрь 4, 2018 Ответить
    • Серёга Декабрь 4, 2018 Ответить
        • Серёга Декабрь 12, 2018 Ответить
  3. добряк Декабрь 4, 2018 Ответить
  4. Михаил Декабрь 4, 2018 Ответить
      • добряк Декабрь 5, 2018 Ответить
  5. Серёга Декабрь 4, 2018 Ответить
  6. Юрий Декабрь 6, 2018 Ответить
  7. Mokh Декабрь 6, 2018 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: