Как и в предыдущих ответах (+1 для обоих), хитрость заключается в использовании -type fпредиката.
Обратите внимание, что вместо -exec rm '{}'вас также можно использовать -deleteпредикат. Но не делай этого. С помощью -exec rm '{}'вы можете (и должны) сначала сделать, -exec echo rm '{}'чтобы убедиться, что это действительно то, что вы хотите. После этого повторите команду без echo.
Использование -deleteвыполняется быстрее (без дополнительных затрат fork()и execve()для каждого файла), но это рискованно, поскольку -deleteработает также как условие, поэтому:
# delete *.tmp files
find . -type f -name '*.tmp' -delete
но если вы ТОЛЬКО меняете аргументы:
# delete ALL files
find . -type f -name '*.tmp' -delete
Если вы когда - нибудь понадобится findи rmработать быстрее тонн файлов, проверьте find ... | xargs ... rmидиомы UNIX.