Conte quantos diretórios possuem pelo menos um arquivo com extensão específica

4

Como posso saber quantos diretórios (no diretório atual) têm pelo menos 1 arquivo com extensão .mp3.

Não é necessário recursão - a estrutura de diretórios do diretório atual é, por exemplo:

1/blabla.mp3
2
3/something.mp3
4
5

O comando deve retornar que há 2 dirs com arquivo (s) mp3.

    
por Dan P. 17.02.2017 / 23:05

2 respostas

7
find . -type f -name "*.mp3" -exec dirname {} \; | uniq | wc -l
    
por 17.02.2017 / 23:19
0
find . ! -name . -prune -type d -exec sh -c '
   yes | head -1 |
   find "$1/." ! -name . -prune -type f \
      \( -name '*.[mM][pP]3' -o -name '.*.[mM][pP]3' \) \
      -exec sh -c "read foo" \; -print
' {} {} \; | wc -l |
sh -c 'read n;echo "There are $n dirs with mp3 files."'

O "find" externo seleciona todos os subdiretórios no diretório atual. e depois desce em cada um deles e os encontra de forma não recursiva, se eles contiverem pelo menos um arquivo mp3, incluindo ocultos e insensíveis a maiúsculas e minúsculas.

    
por 18.02.2017 / 01:15

Tags