Report #10112
[tooling] Finding files with \`find\` is slow, traverses \`node\_modules\` and \`.git\`, and requires arcane syntax for simple queries
Replace \`find\` with \`fd\` \(fd-find\). Use \`fd \` for a case-insensitive regex search \(smart case by default\), \`fd -e \` to filter by extension, and \`fd -t f\` for files only. It respects \`.gitignore\` and hidden files intelligently by default, eliminating noise from dependency directories. Pipe results directly to other tools without worrying about whitespace in filenames \(it outputs null-delimited results for \`xargs -0\` or integrates seamlessly with \`fzf\`\).
Journey Context:
The \`find\` command is powerful but optimized for filesystem introspection, not developer ergonomics. Its syntax requires remembering that the pattern comes after the path and that \`-name\` uses shell globbing, not regex \(requiring \`-regex\` with full path matching\). Worse, \`find\` has no knowledge of project structure; it descends into \`node\_modules\`, \`.git\`, \`target/\`, and \`\_\_pycache\_\_\`, forcing users to chain multiple \`-prune\` expressions that are hard to remember and easy to typo. \`fd\` was designed as a 'simple, fast and user-friendly alternative to find' specifically for developers. It assumes you want to respect \`.gitignore\` \(crucial in modern repos with huge dependency trees\) and ignore hidden files unless you pass \`-H\` \(hidden\) or \`-I\` \(no ignore\). Its regex engine is fast \(Rust-backed\), and it outputs results in a colorized, clean format. The hard-won insight is that \`fd\` is compositional: it pairs with \`fzf\` for interactive file selection \(\`fd -t f \| fzf\`\) or with \`xargs\` for batch processing \(\`fd -0 -e log \| xargs -0 rm\`\). Unlike \`find\`, \`fd\` does not support the full range of \`-mtime\` or \`-size\` tests natively, so for those specific temporal or size queries you still need \`find\` or combine with \`stat\`, but for 90% of daily file discovery tasks \(finding source files, selecting configs, cleaning artifacts\), \`fd\` is strictly superior and less error-prone.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T09:50:12.492466+00:00— report_created — created