#regex #scanner #file #file-search #search

bin+lib scanit

A fast file scanner utility that uses regex patterns to find files in your filesystem

7 releases

new 0.2.1 Dec 28, 2024
0.2.0 Dec 25, 2024
0.1.178 Dec 21, 2024

#391 in Filesystem

Download history 569/week @ 2024-12-16 628/week @ 2024-12-23

1,197 downloads per month

MIT license

9KB
81 lines

scanit 🔍

Rust License: MIT

A command-line utility that recursively searches directories for files matching regex patterns.

Notably this is my first RUST cli and first time using git

🚀 Features

  • Recursive directory scanning
  • Regex pattern matching
  • Hidden file support
  • Cross-platform compatibility (Unix paths) (Possibly windows but not tested!)
  • Current directory search option

⚙️ Installation

cargo install scanit

📝 Changelog

version=[0.2.1]

Changes

  • Fixed working directory commandline options

version=[0.2.0]

Fixed

  • Reduced redundant conversion errors when scanning restricted paths
  • Improved error handling for kernel-protected directories
  • Optimized path traversal logic
  • Fixed README.md
  • Added new CLI argument for including dirs in searching, defaults to off

Changed

  • Improved performance when handling permission denied errors

🔧 Dependencies

Dependency Version Description
regex 1.11.1 Regular expression pattern matching
clap 4.4 Command line argument parsing
jwalk 0.8.1 Fast parallel directory traversal

Special thanks to:

jwalk - For the excellent parallel directory traversal

regex - For the powerful regex engine

clap - For the robust CLI argument parsing

Examples

Find Rust files in /usr

scanit '.rs$' -d /usr

Find PNG files from current directory

scanit '.png$' -c

(or equivalently, scanit '.png$' --current-directory)

Find JavaScript test files

scanit '^/.test..js$'

Find hidden git files

scanit -a '.git'

Search all dirs and file names for a pattern eg zshrc

scanit zshrc -a -i

(or equivalently, scanit zshrc --show-hidden --include-dirs)

Supports Unix and in theory windows, not tested yet! VM's are buggy!

Usage: scanit [OPTIONS]

Arguments: Regex pattern to match files (e.g. \.rs$)

Options

Option Description Default
-d, --directory <DIR> Starting directory / (Unix), C:/ (Windows)
-c, --current-directory Use current directory -
-a, --show-hidden Show hidden files -
-h, --help Show help -
-v, --version Show version -
-i, --include-dirs Include directories in search pattern -

Dependencies

~4.5–6MB
~112K SLoC