Obtém o número de arquivos em cada diretório [duplicado]

0

Eu tenho um diretório com um número muito grande de subdiretórios (~ 800) que foram gerados programaticamente. Eu quero obter uma contagem do número de arquivos em cada um desses subdiretórios para verificar anomalias (se o código quebrou em uma corrida, em seguida, alguns dos arquivos serão perdidos). O que é uma maneira rápida de fazer isso? O tipo de saída que estou procurando é:

Name_of_Folder_1 [# of files in Folder 1]   
Name_of_Folder_2 [# of files in Folder 2]
...
    
por mikefallopian 12.08.2015 / 22:14

2 respostas

1

Supondo que você não tenha espaços em seus nomes de diretório:

for dir in $(find . -type d); do
    echo "${dir}: $(find ${dir} -maxdepth 1 -type f | wc -l)"
done
    
por 12.08.2015 / 22:21
2

Isto fará com que você conte os arquivos em cada subdiretório do diretório atual, lidando com nomes de arquivos estranhos (com o gnu find).

find . -maxdepth 2 -mindepth 2 -type f -printf "%h
find . -maxdepth 2 -mindepth 2 -type f -printf "%h%pre%" | uniq -zc | tr '%pre%' '\n'
" | uniq -zc | tr '%pre%' '\n'
    
por 12.08.2015 / 22:48