Вариант UNIX-команды find с обходом в ширину: сначала выводит файлы из неглубоких каталогов и совместим с POSIX-, BSD- и GNU-версиями find.
jhspetersson/fselect
Консольный поиск файлов по файловой системе с помощью SQL-подобных запросов вместо флагов find и ls.
- Звёзды
- 4,476
- Форки
- 87
- Открытые issues
- 6
- Последний коммит
- 8 дней назад
Что это?
fselect — консольная утилита на Rust для поиска файлов с помощью упрощённого SQL-подобного синтаксиса. Можно выбрать столбцы, например name, path, size или modified, указать каталоги с помощью конструкции from и задать фильтры через where. Поддерживаются также group by, having, order by, limit и вывод результатов в JSON, CSV или HTML.
Помимо фильтрации по имени и размеру, fselect умеет искать файлы внутри zip-архивов, учитывать файлы .gitignore, .hgignore и .dockerignore, а также фильтровать файлы по размерам изображений, данным EXIF, аудиотегам, расширенным атрибутам, POSIX ACL, хешам и MIME-типу. Подзапросы позволяют сравнивать результаты поиска в нескольких каталогах, а агрегатные функции и функции для работы с датами — собирать статистику по найденным файлам.
Для больших деревьев каталогов можно ускорить поиск с помощью индекса plocate в Linux или индекса Everything в Windows. Также доступен интерактивный режим.
Ключевые возможности
- 01Использует упрощённый SQL-подобный синтаксис для выбора, фильтрации, группировки и сортировки файлов.
- 02Ищет файлы внутри zip-архивов и фильтрует их по данным EXIF, размерам изображений и аудиотегам.
- 03Учитывает правила из файлов .gitignore, .hgignore и .dockerignore.
- 04Фильтрует файлы по хешам, MIME-типу, расширенным атрибутам, правам доступа и владельцу.
- 05Поддерживает подзапросы в нескольких каталогах и агрегатные функции.
- 06Выводит результаты в формате JSON, CSV, HTML или обычного текста.
Сценарии использования
- Поиск больших или старых файлов в нескольких каталогах, чтобы освободить место на диске.
- Проверка файлов с опасными правами доступа или неожиданными владельцами на сервере.
- Поиск дубликатов файлов путём сравнения хешей в разных каталогах.
- Составление списка медиафайлов по размерам, длительности или тегам для упорядочивания медиатеки.
Быстрый старт
- 1
Установите Rust с помощью Cargo
- 2
Установите fselect с crates.io
cargo install fselect - 3
Выполните запрос, чтобы вывести список файлов по размеру и пути
fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'
Что важно знать
- Поддержка .gitignore, .hgignore и .dockerignore отмечена как экспериментальная.
- В настоящее время поиск в архивах поддерживает только файлы zip.
В подборках
Темы
Частые вопросы
- Что такое fselect?
- Консольный поиск файлов по файловой системе с помощью SQL-подобных запросов вместо флагов find и ls. fselect — консольная утилита на Rust для поиска файлов с помощью упрощённого SQL-подобного синтаксиса. Можно выбрать столбцы, например name, path, size или modified, указать каталоги с помощью конструкции from и задать фильтры через where. Поддерживаются также group by, having, order by, limit и вывод результатов в JSON, CSV или HTML.
- fselect можно использовать бесплатно? Какая у него лицензия?
- fselect распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- fselect всё ещё поддерживается?
- Активно поддерживается. Последний коммит в fselect — 28 окт. 2026 г..
- Для чего можно использовать fselect?
- Поиск больших или старых файлов в нескольких каталогах, чтобы освободить место на диске. Проверка файлов с опасными правами доступа или неожиданными владельцами на сервере. Поиск дубликатов файлов путём сравнения хешей в разных каталогах. Составление списка медиафайлов по размерам, длительности или тегам для упорядочивания медиатеки.
- Как установить fselect?
- Установите Rust с помощью Cargo Установите fselect с crates.io: cargo install fselect Выполните запрос, чтобы вывести список файлов по размеру и пути: fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'
- Где скачать fselect?
- Исходный код и инструкции по установке — на GitHub: https://github.com/jhspetersson/fselect
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрая и удобная альтернатива Unix-команде find для поиска файлов и каталогов по имени.
Современная замена команде ls: цвета, значки, статус Git и древовидный вывод в одном бинарном файле на Rust.
Консольная утилита для Linux, Mac и Windows, которая показывает смонтированные файловые системы и занятое место: аналог df с фильтрацией, сортировкой и выводом в таблицу, CSV или JSON.
Быстрый анализатор использования диска в терминале на Go: интерактивный консольный интерфейс, неинтерактивный вывод и дополнительный веб-интерфейс.
Клон jq на Rust, ориентированный на корректность, скорость и простоту; доступен как совместимый с jq CLI и как библиотека.