A command-line tool to find files using SQL-like queries with support for metadata, archives, and advanced filtering.
fselect is a command-line file search tool that uses SQL-like queries to locate files based on various criteria, including metadata, content, and attributes. It solves the problem of complex file searches by providing a more expressive and flexible syntax than traditional tools like `find` or `ls`.
Developers, system administrators, and power users who need to perform advanced file searches and filtering on Unix-like systems or Windows.
Developers choose fselect for its intuitive SQL-like syntax, support for searching within archives, and extensive metadata filtering capabilities, making it a versatile alternative to traditional file search utilities.
Find files with SQL-like queries
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses a human-readable SQL-like syntax that supports complex queries with subqueries and aggregates, as shown in examples comparing results across directories and using functions like MIN and MAX.
Enables searching by diverse metadata such as image dimensions, MP3 tags, EXIF data, and extended attributes, allowing precise file selection beyond basic attributes like size and name.
Can search inside ZIP archives without extraction and respects ignore files like .gitignore (though experimental), making it useful for development projects and organized file systems.
Offers an interactive mode for query exploration and exports results to structured formats like JSON, CSV, and HTML, facilitating scripting and data analysis.
Only supports searching within ZIP archives, lacking support for other common formats like tar or rar, which restricts its utility in environments with diverse archive types.
Integration with .gitignore, .hgignore, and .dockerignore is labeled as experimental in the README, potentially leading to unreliable behavior in critical workflows.
The grammar is 'highly relaxed' and not real SQL, which may confuse users expecting full SQL compatibility or trying to port database queries directly.