O problema com o seu comando é que a expansão de curingas é feita pelo seu shell antes que o comando seja realmente chamado. Como seu shell não encontra um arquivo que corresponda a {}/*
(como você não tem um diretório com um nome literal {}
no diretório atual), o *
é passado para o comando inalterado, que será então modificado por find
para excluir arquivos denominados literal *
em seus diretórios someDirs
, pois o comando rm
não expandirá curingas (novamente). Você pode "depurar" isso executando
find -type d -name someDirs -exec echo rm -rf {}/* \;
em vez disso. Para ter certeza de que o shell tem a chance de expandir seu *
, deixe exec
gerar outro shell que pode expandir o *
(e proteger o comando de ser expandido primeiro com aspas simples) assim:
find -type d -name someDirs -exec sh -c 'rm -rf {}/*' \;
ou teste assim:
find -type d -name someDirs -exec sh -c 'echo rm -rf {}/*' \;