Como posso usar o comando find para listar todos os tipos de arquivo em um diretório e em todos os subdiretórios? [duplicado]

3

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.

    
por John D 19.12.2016 / 12:45

2 respostas

4

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.

    
por 19.12.2016 / 13:15
1

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.

    
por 20.12.2016 / 07:54