Você está tendo problemas porque seu shell está tentando expandir *
na lista de arquivos, mas não pode, pois você não tem permissão para ler o diretório.
Posso pensar em duas coisas que funcionariam
sudo bash -c "rm directory/*"
Neste caso, o * não é expandido por você, mas pelo usuário root, que pode ler o diretório
OR
sudo find directory -type f -exec rm {} \;
O texto acima somente excluirá arquivos, não diretórios (caso contrário, excluirá directory
junto com seu conteúdo), mas parecerá menos propenso a erros.
Edit: Na primeira opção, eu escrevi acidentalmente o diretório. * em vez do diretório / *