ripgrep: search TypeScript files excluding common dirs

Search recursively for <Button in TS/TSX files while excluding node_modules, src/components/contact, and src/components/ui.

rg "<Button" -g "*.ts*" -g '!*./node_modules/**' -g '!src/components/contact/**' -g '!src/components/ui/**'
Categories
Operating Systems
cross-platformmacoslinuxwindows
Prerequisites
ripgrep (rg) installedzsh or bash shellrun from project root
Last Tested

10/17/2025

Tags
greprgzshglobtypescriptreact
Details

What it does

Finds all occurrences of <Button in .ts / .tsx files, while excluding folders that create noise or slowdowns.

Why the quoting matters

zsh treats ! as history expansion. Wrapping the negated globs in single quotes prevents zsh: event not found errors.

rg "<Button" -g "*.ts*" -g '!*./node_modules/**' -g '!src/components/contact/**' -g '!src/components/ui/**'

Flags breakdown

  • -g "*.ts*": include .ts and .tsx
  • -g '!*./node_modules/**': exclude node_modules (quoted for zsh)
  • -g '!src/components/contact/**': exclude that directory
  • -g '!src/components/ui/**': exclude that directory

Variations

  • Show only filenames: add -l
  • Show line numbers: add -n
  • Keep colored output when piping: add --color=always
Safety Notes
  • Non-destructive: read-only search.
  • zsh users: keep the single quotes around patterns starting with !.
  • You can simplify the node_modules pattern to -g '!node_modules/**'—the version above matches the exact command that was verified in your shell.