Como comentado por chiborg, a carga deve começar com rm para cada arquivo encontrado. Percebi a resposta em que tmpwatch
é sugerido como uma alternativa, que tenho certeza que funciona bem. No entanto, não é necessário.
Find pode executar o comando dado ao exec uma vez, se você disser para acumular os arquivos encontrados em uma lista de argumentos como:
find /path -name "*.moo" -exec rm {} \+
Às vezes, isso pode não funcionar porque a lista de argumentos pode ficar maior (em bytes) do que o máximo permitido pelo shell (getconf ARG_MAX). Isso pode ser resolvido por xargs com a opção -L.
considere este exemplo:
$ echo 0 > /tmp/it;
$ for i in {0..15000};do echo $i;done |\
xargs --no-run-if-empty -L 5000 ./tmp/xr.sh
Iteration=0; running with 5000 arguments
Iteration=1; running with 5000 arguments
Iteration=2; running with 5000 arguments
Iteration=3; running with 1 arguments
$ cat tmp/xr.sh
#!/bin/sh
IT='cat /tmp/it'
echo Iteration=$IT\; running with $# arguments
let IT=IT+1
echo $IT > /tmp/it
Portanto, não há necessidade de instalar software extra, tudo que você precisa está no gnu-findutils:
find /path -mtime +30 -print0 | xargs -0 -L 5000 rm