Repolode
jhspetersson

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. 1

    Установите Rust с помощью Cargo

  2. 2

    Установите fselect с crates.io

    cargo install fselect
  3. 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 обновляется ежедневно.

Похожие проекты

Консольная утилита для Linux, Mac и Windows, которая показывает смонтированные файловые системы и занятое место: аналог df с фильтрацией, сортировкой и выводом в таблицу, CSV или JSON.

2,9 тыс.+2 за неделю64RustMITАктивно поддерживаетсяОбновлён 4 дня назад