Skip to main content

terminal: count all files - including in sub folders

find DIR_NAME -type f | wc -l

Explanation:

  • -type f to include only files.

  • | redirects find command's standard output to wc command's standard input.

  • wc (short for word count) counts newlines, words and bytes on its input (docs).

  • -l to count just newlines.

Notes:

  • Replace DIR_NAME with . to execute the command in the current folder.

  • On some systems (e.g. OS X) you can omit . for execute in the current folder

  • You can also remove the -type f to include directories (and symlinks) in the count.

  • It's possible this command will overcount if filenames can contain newline characters.

Pro tip:
If you want a breakdown of how many files are in each dir under your current dir:

for i in */  ; do 
    echo -n $i": " ; 
    (find "$i" -type f | wc -l) ; 
done 
find . -type f | wc -l