{"id":20728986,"url":"https://github.com/gers2017/finr","last_synced_at":"2025-08-15T22:11:13.680Z","repository":{"id":173184317,"uuid":"650365510","full_name":"Gers2017/finr","owner":"Gers2017","description":"Command line tool that recursively searches files and directories with a given pattern","archived":false,"fork":false,"pushed_at":"2024-08-06T18:59:35.000Z","size":460,"stargazers_count":4,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T02:56:26.188Z","etag":null,"topics":["cli","cli-tool","command-line","filesystem","find","recursive","rust","search","tool"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gers2017.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-06T23:21:23.000Z","updated_at":"2024-08-06T18:59:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"a696a987-b7a6-4664-b504-08e45670c493","html_url":"https://github.com/Gers2017/finr","commit_stats":null,"previous_names":["gers2017/finr"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gers2017%2Ffinr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gers2017%2Ffinr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gers2017%2Ffinr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gers2017%2Ffinr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gers2017","download_url":"https://codeload.github.com/Gers2017/finr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250503952,"owners_count":21441492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cli-tool","command-line","filesystem","find","recursive","rust","search","tool"],"created_at":"2024-11-17T04:40:49.356Z","updated_at":"2025-04-23T19:48:10.751Z","avatar_url":"https://github.com/Gers2017.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Finr\n\nRecursively search for files and directories with a pattern, ignoring irrelevant directories.\n\n## Table of contents\n\n-   [Motivation](#motivation)\n-   [Installation](#installation)\n-   [Build from source](#build-from-source)\n-   [Usage](#usage)\n-   [About find and fd](#what-about-find-or-fd-find)\n-   [Similar tools](#similar-tools)\n\n## Comparing [finr](https://crates.io/crates/finr) and and [fd-find](https://crates.io/crates/fd-find)\n\n![finr benchmark](./assets/hyperfine_all.png)\n\n## Motivation\n\nI developed finr to quickly find files and directories in the filesystem, ignoring certain directories that usually do not contain what I'm looking for.\nFinr is heavily inspired by ripgrep, specifically the ignore directories part.\nI wanted a tool that was both fast and easy to use.\n\n## Installation\n\nAssumes that you have rust and cargo installed.\n\n```sh\ncargo install finr\n```\n\n## Build from source\n\n```sh\ngit clone https://github.com/Gers2017/finr \u0026\u0026 \\\ncd finr \u0026\u0026 \\\ncargo build --release\n```\n\n## Usage\n\nPrint help message\n\n```sh\nfinr --help\n```\n\nFinr looks for **files** and starts at the **current directory** by default.\nTo search for a directory, use `-t d` (`--type directory`).\nThe max-depth is arbitrarily set to 100.\n\nSearch for .rs files using regex (Uses the [regex crate](https://crates.io/crates/regex))\n\n```sh\nfinr '.+\\.rs$' --regex\n```\n\nfinr searching for `.md` files with a max depth of 200\n\n```sh\nfinr '.+\\.md$' --regex --max-depth 200\n```\n\nSearch for directories that start with `build` inside the `Documents` directory. (Uses [starts_with](https://doc.rust-lang.org/std/string/struct.String.html#method.starts_with))\n\n```sh\nfinr build ~/Documents --start -t d\n```\n\nSearch for files with `.rs`. Starting at the current directory. (Uses [ends_with](https://doc.rust-lang.org/std/string/struct.String.html#method.ends_with))\n\n```sh\nfinr .rs -e\n```\n\nSearching for files that contain `main` in the name, starting at `Documents`.\n(Uses [contains](https://doc.rust-lang.org/std/string/struct.String.html#method.contains))\n\n```sh\nfinr main ~/Documents/\n```\n\nSearch for directories that contain `_node_modules_` in the name.\n\n```sh\nfinr node_modules -t d\n```\n\nSearch for files with `.rs` at the end, starting at the `/home/` directory while excluding (`-E`) some directories.\n\n```sh\nfinr .rs ~/ -e -E Files Videos Downloads .config .local\n```\n\nSearch for files that contain `main.c` starting at the current directory. Ignoring `Music Videos Downloads` and Including `.config .local .ignore`.\n\n```sh\nfinr main.c --exclude Music Videos Downloads --include .config .local .ignore\n```\n\n### What about find or fd-find?\n\nI consider both `find` and `fd` to be a great tools with more features than `finr`.\nSince finr is relatively new, it doesn't have as many features as either find or fd-find (so please bear this in mind).\n\n## Similar tools\n\n-   [fd-find](https://crates.io/crates/fd-find)\n-   [ff](https://github.com/vishaltelangre/ff)\n-   [rsfind](https://github.com/willshuttleworth/rsfind)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgers2017%2Ffinr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgers2017%2Ffinr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgers2017%2Ffinr/lists"}