blob: c844b05411cc6799f035a13d37928bb8645acd2e (
plain) (
tree)
|
|
#!/bin/sh
# Count entries in a given set of directories
# Iterate over remaining non-option arguments (directories); default to current
# directory if none given
for dir in "${@:-.}" ; do
# Strip a trailing slash
dir=${dir%/}
# If the path is not absolute or already pre-dotted, tack a ./ to
# the front so that find(1) doesn't choke; otherwise juse use it
# as-is
case $dir in
/*|./*) fdir=$dir ;;
*) fdir=./$dir ;;
esac
# Warn if a non-directory was given, flag errors, but continue
if ! [ -d "$dir" ] ; then
printf >&2 'cf: %s: not a directory\n' "$dir"
ex=1
continue
fi
# Count the files
count=$(
find "$fdir" -path "$fdir"'/*' -prune -exec printf %.sx {} + |
wc -c
)
# Print the count and the dirname
printf '%u\t%s\n' "$count" "$dir"
done
# Exit non-zero if a non-directory was given as an argument
exit "${ex:-0}"
|