Top.Mail.Ru
Загрузка

FSearch — когда скорость имеет значение

Случаются ситуации, когда вам срочно понадобился какой-либо файл, но он, как назло, надёжно укрылся в глубинах файловой системы вашего компьютера. В таких случаях на помощь приходят утилиты для поиска, коих существует огромное количество. К примеру, программа Findutils может искать файлы «на лету», возвращая файлы, соответствующие шаблону поиска, а также искать их в своей базе данных.

Свою базу данных для поиска на локальном компьютере создаёт и другая программа для поиска — FSearch. И благодаря этому поиск нужных файлов происходит с молниеносной скоростью. Поиск в FSearch начинается, как только вы начинаете вводить первые символы поискового запроса.

Есть из чего выбрать

Различные среды рабочего стола предлагают разные инструменты для поиска файлов и каталогов. Так, в популярной KDE Plasma, предустановлены программы KRunner, KFind и Baloo. Последняя, к слову, используется по умолчанию для поиска в файловом менеджере Dolphin. Рабочая среда Gnome поставляется с программой Tracker, которая интегрирована в файловый менеджер Nautilus. Кроме того, существует множество поисковых приложений, которые не зависят от графического окружения, а проверенные временем инструменты find и locate используются исключительно в командной строке.

Когда речь заходит о производительности и скорости поиска файлов, то вы вряд ли найдёте альтернативу FSearch. Немецкий разработчик Кристиан Боксдёрфер (Christian Boxdörfer) создал FSearch, после того, как был поражён скоростью работы поисковой системы Everything в Windows. Программа впервые увидела свет в в 2016 году, была написана на языке программирования C и использует библиотеки GTK3. FSearch имеет интуитивно понятный графический интерфейс.

Установка FSearch

Несмотря на все свои плюсы, FSearch ещё не появился в репозиторях всех дистрибутивов. Только MX Linux, Solus, PCLinuxOS, GNU Guix и FreeBSD имеют официальные бинарные пакеты. Arch Linux предлагает данный инструмент в своём Arch User Repository (AUR). Также готовые пакеты можно скачать для Debian и openSUSE в «SUSE’s Open Build Service». Пользователи Fedora и RHEL найдут программу в репозитории Copr, а пользователи Ubuntu могут получить доступ к ней через персональные архивы пакетов (PPA). FSearch доступен на Flathub, но с ограниченной функциональностью. Разработчик также предлагал пакет в Snap, но формат пакета имел так много ограничений, что он отказался от него.

Текущая версия FSearch 0.2.2, была выпущена в августе 2022 года. Альфа-версия 0.3 доступны для Ubuntu в виде ежедневной сборки, в AUR в виде Git-дампа, а для Fedora — в виде ночной сборки. Приложение также можно скомпилировать из исходного кода, используя кроссплатформенную консольную утилиту Meson.

Запуск FSearch

Уведомление, которое выйдет при первом запуске приложения, скажет вам о том, что база данных пуста. Переключатель позволяет указать папки, которые вы хотите включить или исключить из поиска (рис. 3). Затем начинается индексирование — это может занять некоторое время, в зависимости от размера файловой системы и количества добавленных вами каталогов. Однако при последующих запусках загрузка базы данных занимает лишь мгновение.

На тестовой системе, где в базу данных программы попало более двух с половиной миллионов записей, первый запуск индексации занял около 10 минут, а сама база заняла более 100 МБ дискового пространства. Файл конфигурации FSearch находится в ~/.config/fsearch.conf, а база данных — в ~/.local/share/fsearch.db.

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

Почему именно FSearch?

Что же делает FSearch таким превосходным инструментом поиска? Прежде всего — скорость. По умолчанию программа начинает поиск сразу, как только вы набираете первые символы поискового слова, и обычно заканчивает отображение совпадений до того, как вы закончите ввод. Кстати, именно поэтому дополнительная кнопка поиска по умолчанию отключена в настройках программы.

Результаты можно отсортировать по имени файла, пути, размеру или времени модификации. Стоит отметить, что программа ищет совпадения только в именах файлов и каталогов, и поэтому то, что FSearch не поддерживает поиск по тексту внутри файлов можно отнести к недостаткам. Если вам нужен полнотекстовый поиск, попробуйте Recoll или DocFetcher.

В настройках во вкладке «База данных» вы можете включить или исключить из поиска пути или скрытые файлы и папки. Таким образом можно указать программе игнорировать целые каталоги, в которых, по вашему мнению, не стоит производить поиск.

Вы можете расширить предопределенные фильтры для типов файлов своими собственными фильтрами в настройках на вкладке «Поиск». Однако поиск можно еще больше сузить в маске поиска, введя, например, «/Downloads pdf». Если вы знаете имя файла или его часть, то запрос «/Documents ab» найдет все файлы с таким сочетанием букв в имени внутри указанного каталога, а также во всех вложенных папках.

Если на вкладке «Поиск» включить опцию «Искать по пути», то FSearch будет искать только соответствия по пути. Если в маске поиска ввести «home», в результате будут показаны все файлы с именем «home». Добавив к термину разделитель путей «home/», программа выполнит поиск по пути.

Пункт настройки «Поведение после успешного открытия файла» с опцией «Свернуть» или «Закрыть», полезна, если вы собираетесь только найти файл или каталог, чтобы открыть его в другом приложении.

Новые операторы

В FSearch 0.2 разработчики обновили поисковый механизм. Синтаксис теперь предлагает гораздо больше возможностей, чем раньше. Операторы и функции можно использовать для задания поискового запроса или расширить его с помощью подстановочных знаков. Кроме того, поиск оценивает регулярные выражения, основанные на библиотеке Perl Compatible Regular Expressions (PCRE).

Как и ранее, FSearch интерпретирует пробел в поисковом выражении как оператор «AND». Запрос «/var auth» без учёта регистра выведет все файлы, в названиях которых содержится выражение «auth».

Вы также можете использовать новые операторы для указания критериев поиска, таких как размер, дата модификации, глубина папки, расширение, тип содержимого и многое другое. Например, чтобы найти любой файл MP4 размером более 1 ГБ, введите:

ext:mp4 size:>1gb

Программа также позволяет создавать запросы с использованием операторов OR и NOT. Например, чтобы найти все файлы JPEG и PNG, измененные в прошлом месяце, в названии которых есть «cat» или «dog», введите:

(cat OR dog) ext:jpg;png dm:lastmonth

Обо всех операторах расширенного синтаксиса с примерами использования можно прочитать на странице GitHub проекта.

Перспективы

На GitHub Кристиан Боксдёрфер делится с пользователями планами развития FSearch. В дальнейших планах разработчика, перевод программы на фреймворк Qt. Среди прочего, он планирует ввести в программу обновление базы данных на лету и использовать inotify для автоматического обнаружения изменений в каталогах или файлах. Кроме того, во время индексации можно будет фильтровать файлы определенных типов в соответствии с такими свойствами, как размер файла или последнее изменение.

Ожидается, что FSearch 0.5 будет поддерживать закладки, а также историю поиска, а версия 0.6 будет показывать миниатюры для поддерживаемых типов файлов. Реализация для командной строки также находится в планах. Это облегчит написание расширений, например, для KRunner из KDE.

Резюме

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

svg

Что вы думаете?

Показать комментарии / Оставить комментарий

Комментировать

svg
Быстрая навигация
  • 01

    FSearch — когда скорость имеет значение