Um pouco mais de pesquisa revelou essa solução:
find . -type f | awk -F'.' '{print $NF}' | sort| uniq -c | sort -g
Não sei por que este link não apareceu em pesquisas anteriores.
Como posso usar o comando find para listar recursivamente todas as extensões de arquivo em um diretório? Usando curingas, posso encontrar todos os arquivos de um certo tipo:
find . -iname '*.mp3'
mas o que eu quero listar para pesquisar um diretório e todos os subdiretórios e listar todas as extensões de arquivo encontradas.
Um pouco mais de pesquisa revelou essa solução:
find . -type f | awk -F'.' '{print $NF}' | sort| uniq -c | sort -g
Não sei por que este link não apareceu em pesquisas anteriores.
Isso seria mais robusto do que sua solução:
find . -type f -name '*.*' | awk -F. '{print $NF}' | sort | uniq -c | sort -g
Ou seja, desde que você esteja procurando a parte de um nome de arquivo após um ponto, é importante adicionar esse detalhe aos filtros de find
. Caso contrário, arquivos sem extensão produzirão resultados estranhos: o caminho inteiro pode ser impresso ou, se o caminho contiver um ponto em um dos subdiretórios intermediários, será impresso um caminho parcial após o último ponto.