glob for filesystem

Creates a list of files and/or folders based on the glob pattern provided.

Signature

> glob {flags} (glob)

Flags

  • --depth, -d {int}: directory depth to search
  • --no-dir, -D: Whether to filter out directories from the returned paths
  • --no-file, -F: Whether to filter out files from the returned paths
  • --no-symlink, -S: Whether to filter out symlinks from the returned paths
  • --exclude, -e {list<string>}: Patterns to exclude from the search: glob will not walk the inside of directories matching the excluded patterns.

Parameters

  • glob: The glob expression.

Input/output types:

inputoutput
nothinglist<string>

Examples

Search for *.rs files

> glob *.rs

Search for *.rs and *.toml files recursively up to 2 folders deep

> glob **/*.{rs,toml} --depth 2

Search for files and folders that begin with uppercase C or lowercase c

> glob "[Cc]*"

Search for files and folders like abc or xyz substituting a character for ?

> glob "{a?c,x?z}"

A case-insensitive search for files and folders that begin with c

> glob "(?i)c*"

Search for files for folders that do not begin with c, C, b, M, or s

> glob "[!cCbMs]*"

Search for files or folders with 3 a's in a row in the name

> glob <a*:3>

Search for files or folders with only a, b, c, or d in the file name between 1 and 10 times

> glob <[a-d]:1,10>

Search for folders that begin with an uppercase ASCII letter, ignoring files and symlinks

> glob "[A-Z]*" --no-file --no-symlink

Search for files named tsconfig.json that are not in node_modules directories

> glob **/tsconfig.json --exclude [**/node_modules/**]

Search for all files that are not in the target nor .git directories

> glob **/* --exclude [**/target/** **/.git/** */]

Notes

For more glob pattern help, please refer to https://docs.rs/crate/wax/latest