Ошибка возникает при использовании подстановочных знаков, когда подходящих файлов получается слишком много (незабывайте, что в данном случае, например, * превращается в строку перечисления всех файлов).
Используйте утилиту find.
$ find <путь> -mindepth 1 -name '<шаблон_поиска>' -exec rm {} \;
Например, для удаления всех текстовых файлов из домашнего каталога и его подкаталогов:
$ find ~/ -mindepth 1 -name '*.txt' -exec rm {} \;
Дискуссия