How to count number of files in each directory? How to count number of files in each directory? bash bash

How to count number of files in each directory?


This prints the file count per directory for the current directory level:

du -a | cut -d/ -f2 | sort | uniq -c | sort -nr


Assuming you have GNU find, let it find the directories and let bash do the rest:

find . -type d -print0 | while read -d '' -r dir; do    files=("$dir"/*)    printf "%5d files in directory %s\n" "${#files[@]}" "$dir"done


find . -type f | cut -d/ -f2 | sort | uniq -c
  • find . -type f to find all items of the type file, in current folder and subfolders
  • cut -d/ -f2 to cut out their specific folder
  • sort to sort the list of foldernames
  • uniq -c to return the number of times each foldername has been counted