FSearch — поисковик файлов для Linux, вдохновлённый Everything из Windows. Он индексирует имена и пути, а результаты появляются во время набора: задержка обычно меньше секунды. Программа написана на C с GTK3 и не требует демона в фоне. Ниже — установка, настройка индекса, синтаксис запросов и сравнение с locate и find.
Что именно индексирует FSearch
В базу попадают имена файлов и каталогов, полные пути, размер и время изменения. Содержимое файлов не индексируется: искать текст внутри PDF или документов эта программа не умеет. Индекс компактен, обновляется быстро и позволяет фильтровать по расширению, типу, размеру и дате. Для поиска по содержимому нужен Recoll, для кода — ripgrep, а FSearch отвечает на вопрос «где лежит файл».
Индекс хранится на диске и при запуске подгружается в память, поэтому поиск не зависит от скорости накопителя. Чем больше каталогов, тем дольше первичное построение: на домашнем разделе с миллионом файлов это минуты.
Установка
В Ubuntu и Linux Mint стабильная версия ставится из PPA автора. В Debian пакет есть в sid, для стабильных выпусков используйте OpenBuildService. В Arch программа есть в официальном репозитории, в Fedora — в COPR.
sudo add-apt-repository ppa:christian-boxdoerfer/fsearch-stable
sudo apt update
sudo apt install fsearch
fsearch
Flatpak-версия имеет ограничения: часть настроек индекса и доступ к путям может быть недоступна. Для полного функционала ставьте пакет дистрибутива. Для сборки нужны GTK3, GLib, PCRE2, ICU и meson.
sudo apt install git build-essential meson itstool libtool pkg-config intltool libicu-dev libpcre2-dev libglib2.0-dev libgtk-3-dev libxml2-utils
git clone https://github.com/cboxdoerfer/fsearch.git
cd fsearch && meson setup builddir --buildtype=release
sudo ninja -C builddir install
Сборка из git может содержать ошибки. Для рабочей машины предпочтительнее пакет, а исходники нужны, когда нет свежей версии.
Первичная настройка индекса
Откройте настройки и добавьте корневые каталоги. Обычно это /home/пользователь и отдельные разделы с данными. Не добавляйте корень / целиком: в индекс попадут системные файлы и миллионы ненужных записей. Исключите /proc, /sys, /dev, /run, /tmp, /var/cache, ~/.cache, каталоги контейнеров и корзину.
Настройте исключения по маскам: *.tmp, *.part, node_modules, .git. Это уменьшает базу и ускоряет обновление. Внешние диски добавляйте только когда они смонтированы, иначе после перезагрузки пути станут недействительными.
Индекс обновляется вручную или по расписанию. FSearch не следит за файловой системой постоянно, поэтому новые файлы появляются после переиндексации. Для домашнего каталога достаточно обновлять базу раз в сутки.
Синтаксис запросов
Строка поиска понимает не только подстроку, но и операторы. Регистр по умолчанию не учитывается.
ext:pdf договор
file:отчёт dm:2026
path:/home/user/Проекты ext:md
size:>100mb folder:backup
Оператор ext: фильтрует по расширению, file: оставляет только файлы, folder: — только каталоги, path: ищет по полному пути. size:>100mb полезен для поиска забытых архивов и образов, dm: ограничивает дату изменения. Поддерживаются dm:today, dm:lastweek и диапазоны вида dm:2026-01..2026-06.
ext:jpg;png;webp screenshot
NOT node_modules
regex:"^IMG_[0-9]{4}\.jpg$"
parent:/mnt/archive
Оператор NOT или восклицательный знак исключает термин, скобки группируют условия, кавычки защищают пробелы. Регулярные выражения включаются префиксом regex: и работают медленнее обычного поиска, поэтому сначала сужайте область через path:. Функция parent: привязывает поиск к конкретному каталогу без рекурсивного перебора вручную.
Полезны и функции для папок: empty: находит пустые каталоги, childcount: — папки с заданным числом элементов, depth: — по уровню вложенности. Это выручает при разборе архивов и подготовке хранилища.
Практические сценарии
Первый сценарий — поиск дублей. Запрос file:exact:отчёт покажет все файлы с таким именем независимо от расширения; сортировка по размеру помогает найти копии. Второй — разбор диска: file:size:>500mb быстро выводит крупные файлы, а dm:<2024 помогает найти давно забытые архивы. Третий — работа с проектами: path:/home/user/Projects ext:json ограничивает поиск нужной веткой каталогов.
Для документооборота удобен фильтр ext:pdf;xlsx;ods dm:thismonth. Он показывает недавние документы нужных форматов без открытия файлового менеджера.
Обслуживание и производительность
Следите за размером базы и числом каталогов. Если поиск стал медленнее, проверьте, не добавлена ли сетевая папка или каталог с временными файлами. Каталоги сборки и кэши лучше исключить.
du -sh ~/.local/share/fsearch 2>/dev/null
find /home -type f 2>/dev/null | wc -l
time find /home -iname "*.pdf" 2>/dev/null | wc -l
time plocate "*.pdf" | wc -l
Первая команда показывает ориентировочный размер данных приложения, вторая — сколько файлов реально находится в домашнем каталоге. Сравнение find и plocate показывает порядок величин: find каждый раз обходит диск, locate читает готовую базу, а FSearch работает с готовым индексом. На SSD разница между find и FSearch особенно заметна на глубокой вложенности.
Ограничения и сравнение
FSearch не ищет по содержимому, не имеет полноценного CLI и не обновляет индекс при перемещении файла в корзину — удалённые таким способом записи могут оставаться в результатах до переиндексации. Сортировка по типу большого числа результатов выполняется медленно, потому что тип не хранится в индексе. Для сценариев с интенсивной работой по типу лучше сразу сузить запрос через ext:.
- locate/plocate — база имён, обновляется по расписанию, есть CLI, подходит для скриптов.
- find — всегда актуален, но обходит диск и медленнее на больших деревьях.
- fd — удобный синтаксис и параллельный обход, ориентирован на терминал.
- Recoll — полнотекстовый поиск по содержимому документов, требует отдельного индекса.
- FSearch — мгновенный интерактивный поиск по именам с богатыми фильтрами.
Чек-лист
- Добавьте только нужные корневые каталоги, без корня целиком.
- Исключите кэши,
/proc,/sys, контейнеры и корзину. - Проверьте запросы с
ext:,path:иsize:. - Обновляйте индекс после крупных изменений файловой системы.
- Для скриптов используйте plocate или find, а не GUI.
- Для поиска по тексту документов поставьте Recoll.
Итог
FSearch занимает узкую, но очень полезную нишу: мгновенный поиск файлов по имени в графическом интерфейсе. Он прост в установке, экономичен по памяти и хорошо фильтрует результаты, если освоить несколько операторов. Полнотекстовый поиск и автоматизация остаются за другими инструментами, но для повседневной навигации по диску FSearch часто быстрее файлового менеджера и уж точно быстрее ручного обхода каталогов.