Isso seria significativamente mais fácil usando rsync com sua opção --exclude .
rsync -av --exclude='*.FOO' --exclude='*.BAR' --exclude='*.ZIM' /source /dest
A opção -v fornecerá uma saída detalhada na qual os arquivos estão sendo sincronizados.