"grep -r foo *" vs "grep -r foo ."

view story

http://unix.stackexchange.com – When using grep -r you could search in all files with either * or . and it seems to return the same thing but is it really the same? Let's say I search for "foo", then I could write grep -r foo * or grep -r foo . Would anyone try to explain the difference between . and *? (HowTos)