blob: cb06aa568e24c371cf2e8697e4a05aa0ef870d67 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# Count files
cf() {
local dir dgs ngs
local -a files
# Specify directory to check
dir=${1:-$PWD}
# Error conditions
if [[ ! -e $dir ]]; then
printf 'bash: cf: %s does not exist\n' \
"$dir" >&2
return 1
elif [[ ! -d $dir ]]; then
printf 'bash: cf: %s is not a directory\n' \
"$dir" >&2
return 1
elif [[ ! -r $dir ]]; then
printf 'bash: cf: %s is not readable\n' \
"$dir" >&2
return 1
fi
# Record current state of dotglob and nullglob
shopt -pq dotglob && dgs=1
shopt -pq nullglob && ngs=1
# Retrieve the files array
shopt -s dotglob nullglob
files=("$dir"/*)
# Reset our options
((dgs)) || shopt -u dotglob
((ngs)) || shopt -u nullglob
# Print result
printf '%d\t%s\n' \
"${#files[@]}" "$dir"
}
|