find é muito útil para executar seletivamente ações em uma árvore inteira.
find . -type f -name ".Apple*" -delete
Aqui, o -type f certifica-se de que é um arquivo, não um diretório, e pode não ser exatamente o que você deseja, pois também ignora links simbólicos, sockets e outras coisas. Você pode usar ! -type d , que literalmente significa não diretórios, mas também pode excluir dispositivos de caracteres e de blocos. Eu sugeriria olhar o predicado -type na página man para find .
Para fazer isso estritamente com um curinga, você precisa de suporte avançado ao shell. O Bash v4 tem a globstar opção , que permite corresponder recursivamente subdiretórios usando ** . zsh e ksh também suportam esse padrão. Usando isso, você pode fazer rm -rf **/.Apple* . Isso não é POSIX-padrão, e não é muito portátil, então eu evitaria usá-lo em um script, mas para uma ação de shell interativa única, tudo bem.