Find number of files in folder and sub folders?
I want to find the total count of the number of files under a folder and all its sub folders.
9 Answers
May be something like
find . -type f | wc -l
would do the trick. Try the command from the parent folder.
find . -name <pattern> -type f finds all files in . and subfolders. The result (a list of files found) is passed (|) to wc -l which counts the number of lines. -name <pattern> only looks for certain files.
Use the tree command. You might need to install the tree package.
It will list all the files and folders under the given folder and list a summary at the end.
To count files (even files without an extension) at the root of the current directory, use:
ls -l | grep ^- | wc -lTo count files (even files without an extension) recursively from the root of the current directory, use:
ls -lR | grep ^- | wc -l 4 The fastest and easiest way, is to use tree. Its speed is limited by your output terminal, so if you pipe the result to tail -1, you'll get immediate result. You can also control to what directory level you like the results, using the -L option. For colorized output, use -C. For example:
$ tree share/some/directory/ | tail -1
558 directories, 853 files
$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 filesIf it's not already there, you can get it here.
find -type f -printf . | wc -cDon't count the output lines of find, because filenames, containing 99 newlines, will count as 100 files.
3Use this command for each folder in the path
for D in *; do echo $D; find $D -type f| wc -l; done You can use find . | wc -l
find . will list all files and folders and theire contents starting in your current folder.wc -l counts the results of find
find seems to be quicker than tree so I used below to count files in each directory of the current working directory (ignoring files in CWD) with allowing directories to have spaces:
ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done
I'd go with this option myself:
1ls -alR | grep -c ^-