6 stable releases

Uses new Rust 2024

new 1.3.0 Mar 19, 2025
1.2.0 Jan 16, 2025
1.1.2 Nov 14, 2024
1.1.0 Oct 28, 2024

#1 in #alternative

Download history 5/week @ 2024-12-06 41/week @ 2025-01-10 86/week @ 2025-01-17 7/week @ 2025-02-14 52/week @ 2025-03-14

52 downloads per month

GPL-3.0-or-later

100KB
175 lines

lookfor

madewith

A cross-platform CLI tool to find and highlight files that match a pattern.

Features

  • Cross-platform
  • Concurrent searching
  • Case-sensitive and insensitive search (insensitive by default)
  • Customizable colored output for errors and highlighting (can be disabled by setting a NO_COLOR environment variable to any value)

Installation

  • From crates.io: cargo install lookfor
  • From GitHub: cargo install --git https://github.com/DarkCeptor44/lookfor
  • From releases.
  • Manually:
git clone https://github.com/DarkCeptor44/lookfor
cd lookfor
cargo install --path .

Usage

usage

$ lookfor -h
Cross-Platform file finder

Usage: lookfor [OPTIONS] <PATTERN>

Arguments:
  <PATTERN>  Pattern to search for

Options:
      --in <PATH>       Path to search in [default: .]
  -c, --color <COLOR>   Color of the highlighted text (off for no color) [default: blue] [possible values: red, black, green, yellow, blue, 
magenta, cyan, white, bright-black, bright-red, bright-green, bright-yellow, bright-blue, bright-magenta, bright-cyan, bright-white]        
  -I, --case-sensitive  Case sensitive search
  -h, --help            Print help
  -V, --version         Print version
$ lookfor clap
.\target\debug\.fingerprint\clap-df93454be42887a2\lib-clap.json
.\target\debug\.fingerprint\clap-df93454be42887a2
.\target\debug\.fingerprint\clap-df93454be42887a2\dep-lib-clap
.\target\debug\.fingerprint\clap-df93454be42887a2\invoked.timestamp
.\target\debug\.fingerprint\clap-df93454be42887a2\lib-clap
.\target\debug\.fingerprint\clap_builder-7a64f8b7e0ac51c1
.\target\debug\.fingerprint\clap_builder-7a64f8b7e0ac51c1\invoked.timestamp
.\target\debug\.fingerprint\clap_builder-7a64f8b7e0ac51c1\dep-lib-clap_builder
.\target\debug\.fingerprint\clap_builder-7a64f8b7e0ac51c1\lib-clap_builder
.\target\debug\.fingerprint\clap_builder-7a64f8b7e0ac51c1\lib-clap_builder.json
.\target\debug\.fingerprint\clap_derive-19d5354e6d08a992
.\target\debug\.fingerprint\clap_derive-19d5354e6d08a992\dep-lib-clap_derive
.\target\debug\.fingerprint\clap_derive-19d5354e6d08a992\invoked.timestamp
.\target\debug\.fingerprint\clap_derive-19d5354e6d08a992\lib-clap_derive
.\target\debug\.fingerprint\clap_derive-19d5354e6d08a992\lib-clap_derive.json
.\target\debug\.fingerprint\clap_lex-1195a16252b95268
.\target\debug\.fingerprint\clap_lex-1195a16252b95268\dep-lib-clap_lex
.\target\debug\.fingerprint\clap_lex-1195a16252b95268\invoked.timestamp
.\target\debug\.fingerprint\clap_lex-1195a16252b95268\lib-clap_lex
.\target\debug\.fingerprint\clap_lex-1195a16252b95268\lib-clap_lex.json
.\target\debug\deps\clap-df93454be42887a2.d

...

Todo

  • Add support for regular expressions.

Tests

cargo build
cargo test

Benchmarks

The benchmarks were performed using Hyperfine at the root of the repository after running both cargo build and cargo build -r, to find anything with clap in the target directory.

Windows

  • AMD64, 32GB RAM, Ryzen 7 3800X, Windows 10.
Command Mean [ms] Min [ms] Max [ms] Relative
dir /s /b *clap* 39.4 ± 1.1 37.7 45.0 1.06 ± 0.05
findstr /s /m /c:clap * 327.0 ± 1.9 325.6 331.6 8.78 ± 0.31
target\release\lookfor.exe clap 37.3 ± 1.3 35.6 42.0 1.00

Linux

  • ARM64, 1GB RAM, Orange Pi Zero2, Debian 12.
Command Mean [ms] Min [ms] Max [ms] Relative
target/release/lookfor clap 37.5 ± 0.8 36.4 41.6 1.02 ± 0.03
find . -iname "*clap*" 37.0 ± 0.5 35.9 38.2 1.00

License

This project is licensed under the terms of the GNU General Public License version 3.

Dependencies

~2.4–9.5MB
~90K SLoC