Three different jobs, three tool families: find walks the filesystem live and can filter on any attribute, locate answers instantly from a prebuilt index, and grep searches inside files. fd, plocate, and rg are their modern, faster counterparts.
find needs a starting directory; -iname matches case-insensitively. fd searches the current directory by default, ignores hidden and git-ignored files, and uses regex patterns.
-exec runs a command on every match; {} is replaced by the file name. Ending with + passes many files per invocation instead of one at a time. -delete removes matches directly.
locate finds path names instantly from an index instead of scanning the disk. The index is updated periodically by updatedb, so very new files may be missing. plocate is the faster modern implementation.
grep -r searches directories recursively; -n shows line numbers, -i ignores case, -l lists only file names. rg (ripgrep) is recursive by default, skips git-ignored files, and is much faster on big trees.