我想打印给定 CWD / 当前目录中的文件夹数量(递归,不包括隐藏文件夹)。我可以使用什么命令或一系列命令来确定此信息?
答案1
这将找到当前工作目录中非隐藏目录的数量:
ls -l | grep "^d" | wc -l
编辑:
为了使其递归,请使用-R
以下选项ls -l
:
ls -lR | grep "^d" | wc -l
答案2
在 GNU 土地上:
find . -mindepth 1 -maxdepth 1 -type d -printf . | wc -c
别处
find . -type d ! -name . -printf . -prune | wc -c
在bash中:
shopt -s dotglob
count=0
for dir in *; do
test -d "$dir" || continue
test . = "$dir" && continue
test .. = "$dir" && continue
((count++))
done
echo $count
答案3
答案4
在zsh
:
(){echo $#} *(N/)
递归地:
(){echo $#} **/*(N/)
D
如果您还想计算隐藏目录的数量,请添加glob 限定符。
POSIX 等效项:
ls -p | grep -c /
(添加隐藏选项-A
)ls
递归地:
LC_ALL=C find .//. ! -name . \( -name '.*' -prune -o -type d -print \) |
grep -c //
或者
LC_ALL=C ls -Rqn . | grep -c '^d'
包括隐藏的:
LC_ALL=C find .//. ! -name . -type d | grep -c //
或者:
LC_ALL=C ls -ARqn . | grep -c '^d'