No zsh:
rm *(^/)
Outros shells não têm equivalentes aos qualificadores do zsh. Em vez disso, você pode chamar find , que é capaz de discriminar arquivos por tipo, e dizer para não recorrer a subdiretórios além de . (o diretório inicial).
find . -name . -o -type d -prune -o rm -f {} +
Isso exclui os arquivos de pontos, enquanto * não corresponde aos arquivos de pontos. Se você deseja preservar os arquivos de ponto, informe find para não chamar rm neles.
find . -name . -o -type d -prune -o ! -name '.*' rm -f {} +
(Você pode usar -mindepth , -maxdepth e -delete , mas somente se não precisar que seu script seja executado em sistemas em que find não tenha essas opções. As opções que usei são portáteis .)