我的初始代码是:
function recurse {
for i in "$1"/*;do
echo "$i"
if [ -d "$i" ];then
#echo $i
count $i
recurse "$i"
fi
done
}
但后来我意识到这不会循环隐藏目录。我想要做的是制作一个脚本,它将计算给定目录中的所有文件和目录(包括隐藏)。我这样做的功能是:
function count {
varname=($1/*)
for varname2 in ${varname[@]} # For each element
do
if [ -d $varname2 ] # Checks if directory
then
Directories=$(expr $Directories + 1)
elif [ -f $varname2 ] # Checks if file
then
Files=$(expr $Files + 1)
fi
done
for a in $(ls -FA $1 | egrep '^[.].*[/]$') # Checks for hidden dirs
do
HiddenDirectories=$(expr $HiddenDirectories + 1)
done
for a in $(ls -FA $1 | egrep '^[.].*[^/]$') # Checks for hidden files
do
HiddenFiles=$(expr $HiddenFiles + 1)
done
}
谢谢
答案 0 :(得分:1)
使用bash我建议使用:
shopt -s dotglob
来自man bash
:
dotglob
:如果设置,bash包含以`。'开头的文件名。在路径名扩展的结果中。