如何统计Git仓库中所有文件夹(含隐藏及子文件夹)的数量?
统计Git仓库中所有文件夹(含隐藏及子文件夹)的方法
基于Git追踪的文件夹统计
如果你只需要统计被Git追踪的文件夹,用git ls-files配合过滤就能实现,比系统命令更精准:
git ls-files --directory | sort -u | wc -l
--directory:仅输出文件夹路径sort -u:去重,避免同一文件夹因关联多个文件被重复计数wc -l:统计最终的文件夹数量
统计仓库目录下所有文件夹(含未追踪项)
如果要包含仓库里所有实际存在的文件夹(包括.gitignore忽略的、隐藏文件夹),用find命令更可靠:
find /mnt/c/Users/USERNAME/GIT/REPO -type d | grep -v '^\./\.git' | wc -l
-type d:限定只查找文件夹grep -v '^\./\.git':排除Git自带的.git文件夹(不需要的话可以删掉这一段)- 直接执行
find /mnt/c/Users/USERNAME/GIT/REPO -type d | wc -l会包含.git及其子文件夹
改进你的ls命令方案
如果习惯用ls,需要开启shell的递归匹配功能(以bash为例):
# 先开启globstar支持递归匹配 shopt -s globstar # 统计所有层级的文件夹(含隐藏) ls -d /mnt/c/Users/USERNAME/GIT/REPO/**/ | wc -l
**/会递归匹配所有子文件夹,加上-d参数只输出文件夹路径,这样就能覆盖所有层级和隐藏文件夹了。
内容的提问来源于stack exchange,提问作者Tymon Tymoniasty
相关产品推荐
相关产品推荐

