# Where's: A simple file finder `wheres` is a simple tool for finding where a file or directory is. `wheres` is like if `find` had a sane interface and worked better. |`find` | `wheres` | |-----------------------------------|-----------------------------------------| |`find -name foo.c` | `wheres foo.c` | |`find /foo /baz -name foo.c 2>/dev/null` | `wheres /foo /baz foo.c` | |`find -name foo.c -or -name baz.c` | `wheres foo.c baz.c` | |`find -iname 'readme*'` | `wheres -i 'readme*'` | |`find -regex '.*/foo\(\.c\)?'` | `wheres 'foo*' | grep '.*/foo\(\.c\)?'` | ## Some differences ### No error messages `wheres` does not print file access errors, it silently ignores directories whose contents can't be read. For example, searching inside `/`, will not spam the console with useless access errors when not run as root. ### Default directory `wheres` operates in the current working directory by default, which can be overridden using the `-d` flag to set the working directory. You do not need to specify the directory first. ### Patterns are the main argument Positional arguments to `wheres` act as globbing patterns and if _any_ pattern matches a filename, it will be printed, rather than `find`'s default logic that requires _all_ patterns to match a filename. There is no `-or`/`-and` flags for complex boolean logic. ## Usage * `--help,-h`: print a help message * `--dir,-d