find . -type f -name '*.*' -exec sh -c 'echo ${0##*.}' {} \; | sort | uniq -c | sort -nr
O echo ${0##*.} fornece a extensão do arquivo. Nós canalizamos a saída para sort e depois contamos as linhas exclusivas com uniq .
Algumas adições:
- Como a saída de
uniqnão é classificada de acordo com o número de ocorrências, você precisará enviar novamente para uma classificação numérica (-nr), se desejar classificá-la. - Se você quiser pesquisar somente o diretório atual, adicione
-maxdepth 1ao comandofind. - Canalize em
awk '{print $2, $1}'para mostrar a contagem após as extensões.