I work with a group of web servers that regularly need to have their /tmp directories cleaned up.  At first we tried the following find(1) command:
/usr/bin/find /tmp -maxdepth 1 -type f -iname '*.jpg' -or -iname '*.gif' -or -iname '*.bmp' -or -iname '*.png' -or -iname '*.pdf' -or -iname '*.bmp' -print0 -mmin +1440 | xargs -r -0 rm -rf
While it looked right, no files were being removed.  Going back to find(1)s man page I noticed a key word, expression.
So what is a find(1) expression?  A find(1) expression is made up of two parts, what your looking for and what you want to do with it. “-iname ‘*.bmp'” only matched half of the requirements.
Adding the “what to do” part to each expression, the find command now looks like:
/usr/bin/find /tmp -maxdepth 1 -type f -iname '*.jpg' -print0 -mmin +1440 -o -iname '*.gif' -print0 -mmin +1440 -o -iname '*.bmp' -print0 -mmin +1440 -o -iname '*.png' -print0 -mmin +1440 -o -iname '*.pdf' -print0 -mmin +1440 | xargs -r -0 rm -rf
Now find is listing the files which are being fed into xargs/rm for deletion.