Vous transmettez en fait rmla sortie de find. Ce que vous voulez, c'est utiliser la sortie de findcomme arguments pour rm:
find -type f -name '*.sql' -mtime +15 | xargs rm
xargsest la commande qui "convertit" son entrée standard en arguments d'un autre programme, ou, comme ils le mettent plus précisément sur la manpage,
construire et exécuter des lignes de commande à partir d'une entrée standard
Notez que si les noms de fichiers peuvent contenir des espaces, vous devez corriger cela:
find -type f -name '*.sql' -mtime +15 -print0 | xargs -0 rm
Mais en fait, finda un raccourci pour cela: l' -deleteoption:
find -type f -name '*.sql' -mtime +15 -delete
Veuillez tenir compte des avertissements suivants dans man find:
Warnings: Don't forget that the find command line is evaluated
as an expression, so putting -delete first will make find try to
delete everything below the starting points you specified. When
testing a find command line that you later intend to use with
-delete, you should explicitly specify -depth in order to avoid
later surprises. Because -delete implies -depth, you cannot
usefully use -prune and -delete together.
PS Notez que le transfert direct vers rmn'est pas une option, car rmne s'attend pas à des noms de fichiers sur l'entrée standard. Ce que vous faites actuellement, c'est de les faire reculer.