conta os arquivos dentro de subpastas e ordena a exibição

0

então eu tenho o seguinte script

find "my-path-here"  -maxdepth 1 -mindepth 1 -type d -exec sh -c 'echo "{} : $(find "{}" -type f | wc -l | sort)" file\(s\)' \;

e conta os arquivos (recursivamente) em todas as pastas (profundidade = 1)

A captura de tela abaixo foi executada em / usr e, como pode ser visto, as pastas não são classificadas alfabeticamente.

Alguma idéia de como alterar o comando para que ele seja classificado em ordem alfabética?

Obrigado

    
por mrjayviper 23.10.2017 / 13:14

1 resposta

3

Uma maneira de fazer isso, assumindo o GNU find e assumindo que seus nomes de arquivos não possuem novas linhas incorporadas:

find /some/dir -type f -printf '%P\n' | grep / | cut -d/ -f1 | sort | uniq -c

Exemplo de saída:

 5322 X11R6
  316 bin
   89 lib
 2165 libdata
   50 libexec
19220 local
   10 mdec
  206 sbin
 8970 share

Você pode usar awk ou sed para formatar isso, se precisar.

    
por 23.10.2017 / 13:26

Tags