Tente usar xargs :
find ./cache -mtime +0.5 -print0 | xargs -0 rm -f
Atualizar explicação para @pradeepchhetri
Se você usar find com -exec , todos os arquivos que find encontrar chamarão rm uma vez. Então, se você encontrou um grande número de arquivos, ou seja, 10.000 arquivos, você chamou rm 10000 vezes.
xargs tratará a saída de find como argumento de comando para rm , para que xargs forneça tantos argumentos quanto rm possa manipular de uma só vez, ou seja, rm -f file1 file2 ... fazer o programa correr mais rápido.