To find in current working directory by name:
find . -name \*.pdf
Note that the wildcard * has to be escaped so that the shell doesn't interpret it before find gets its hands on it. Using '*.pdf' and "*.pdf" will have the same effect as \*.pdf.
To find case-insensitively:
find . -iname \*.pdf
To prune the results to files only (the name expression will probably take care of this for you, but just in case you have any weirdly-named directories):
find . -type f -name \*.pdf
To make sure find follows symbolic links (I usually want to do this myself when doing searches):
find . -follow -type f -name \*.pdf
To do something with the files you found: you can dump this to a file or use the -exec option, but it's often faster to let xargs pass your found files as arguments to another command, all at once or big chunks at a time. For example, for ad-hoc greps through header files:
find . -follow -type f -name \*.h | xargs grep -nH "identifier"
findis far from useless. – wilhelmtell May 25 '10 at 23:31findis intuitive. I could probably say the same thing in a nicer tone though; sometimes I react to (silly) negative comments. – wilhelmtell May 26 '10 at 0:04