Beim Löschen einer großen Anzahl Dateien via Wildcard (*) kommt beim Befehl rm machmal eine Fehlermeldung "The parameter list is too long". Ursache ist die hohe Anzahl der Dateinamen, die die Shell bei der Auflösung der Wildcard an rm übergibt.

Beispiel:

Im Verzeichnis /lalelu liegen > 300 Dateien mit Namen log_000xxxxxxx, wobei xxxxxxx eine fortlaufende Zahl ist.

root@svr: /lalelu # rm -f log_*
ksh: /usr/bin/rm: 0403-027 The parameter list is too long.


Die Lösung ist mit find & xargs schnell umgesetzt.

Zuerst testen welche Dateien verarbeitet werden, damit auch das erwartete Ergebnis erzielt wird:

root@svr: /lalelu # find /lalelu -type f -name "log_*"|xargs echo $1


Wenn das Ergebnis des Tests passt, den gleichen Befehl mit rm ausführen:

root@svr: /lalelu # find /lalelu -type f -name "log_*"|xargs rm -f