fselect — это консольная утилита для поиска файлов с помощью выражений, напоминающих SQL. В некоторых случаях может заменить традиционный find и написание развесистых скриптов с его использованием.
Преимущества:
- возможность создания сложных запросов с помощью скобок и операторов SQL
- использование подзапросов для поиска и сравнения результатов сразу в нескольких директориях
- множество функций (агрегации, статистические, работа с датой и временем и т.д.), заимствованных из SQL
- поиск внутри zip-архивов
- поиск с учетом
.gitignore - поиск по ширине/высоте изображений, метаданных EXIF
- поиск по метаданным MP3-файлов
- поддержка расширенных файловых атрибутов в Linux
- поиск по хэшам содержимого файлов
- интерактивный режим
- форматирование вывода в CSV, JSON и null-terminated строки
Релиз 0.9.1 ознаменовался расширенной поддержкой подзапросов в операторах IN и EXISTS. Таким образом, теперь стало возможным искать файлы и сравнивать результаты поиска сразу в нескольких директориях.
Пример запроса (поиск файлов формата Markdown из директории content, для которых не были сгенерированы соответствующие HTML-файлы в директории public):
SELECT path
FROM /content AS content
WHERE NOT EXISTS (
SELECT * FROM /public AS public
WHERE public.dir = content.dir AND public.name = CONCAT(content.filename, '.html'))
AND name = '*.md'









