find . -name '*.pyc' -print0 | xargs -0 rm
La búsqueda busca de forma recursiva archivos * .pyc. El xargs toma esa lista de nombres y la envía a rm. El -print0 y el -0 le dicen a los dos comandos que separen los nombres de los archivos con caracteres nulos. Esto le permite funcionar correctamente en nombres de archivos que contienen espacios, e incluso en un nombre de archivo que contiene una nueva línea.
La solución con -exec funciona, pero genera una nueva copia de rm para cada archivo. En un sistema lento o con una gran cantidad de archivos, eso llevará demasiado tiempo.
También podría agregar un par más de argumentos:
find . -iname '*.pyc' -print0 | xargs -0 --no-run-if-empty rm
iname agrega insensibilidad a mayúsculas y minúsculas, como * .PYC. El no-run-if-empty le impide obtener un error de rm si no tiene dichos archivos.
rm
serán llamados con argumentos [-r, a.pyc, b.pyc].