find . -name '*.pyc' -print0 | xargs -0 rm
Поиск рекурсивно ищет файлы * .pyc. Xargs берет этот список имен и отправляет его в rm. -Print0 и -0 говорят двум командам разделять имена файлов нулевыми символами. Это позволяет ему корректно работать с именами файлов, содержащими пробелы, и даже с именем файла, содержащим новую строку.
Решение с -exec работает, но оно раскручивает новую копию rm для каждого файла. На медленной системе или с большим количеством файлов это займет слишком много времени.
Вы также можете добавить еще пару аргументов:
find . -iname '*.pyc' -print0 | xargs -0 --no-run-if-empty rm
iname добавляет нечувствительность к регистру, как * .PYC. No-run-if-empty не позволяет получить ошибку от rm, если у вас нет таких файлов.
rm
будут вызываться с аргументами [-r, a.pyc, b.pyc].