for dir in "${@}"; do
- /bin/ls -1fR "$dir" | grep -v "^$" | grep -v "^\.$" | grep -v "^\.\.$" | grep -v "$dir\/.*:$" | wc
+ /bin/ls -1fR "$dir" | grep -v "^$" | grep -v "^\.$" | grep -v "^\.\.$" | grep -v ".*:$" | wc -l
+
+ # patterns that remove files from being counted, above:
+ #
+ # ^$ -- all blank lines
+ # ^\.$ -- all lines with just a dot (current directory)
+ # ^\.\.$ -- all lines with just two dots (parent directory)
+ # .*:$ -- all lines that end with a colon (directory heading from recursive ls)
done