温馨提示×

怎么统计linux文件数量

小樊
46
2026-07-29 08:21:11
栏目: 智能运维

在 Linux 中统计文件数量,常见需求有几种,下面按不同场景给你总结最常用的方法。


一、统计当前目录下的文件数量(不含子目录)

只统计普通文件,不包含目录本身:

ls -l | grep "^-" | wc -l

或更推荐(避免 ls 解析问题):

find . -maxdepth 1 -type f | wc -l

二、统计当前目录及子目录中的文件数量

✅ 统计所有普通文件

find . -type f | wc -l

✅ 统计所有目录数量

find . -type d | wc -l

✅ 统计所有文件(含目录)

find . | wc -l

三、按文件类型统计

统计普通文件

find . -type f | wc -l

统计目录

find . -type d | wc -l

统计软链接

find . -type l | wc -l

四、统计某个目录下的文件数量(指定路径)

find /path/to/dir -type f | wc -l

五、统计文件数量并排除某些目录(如 .git

find . -type f ! -path "./.git/*" | wc -l

六、统计文件数量并显示每个子目录的文件数

for dir in */; do
  echo "$dir: $(find "$dir" -type f | wc -l)"
done

七、更快的方法(适合大量文件)

使用 locate(需先建立索引):

locate -r "^$PWD/.*[^/]$" | wc -l

八、常见错误说明

❌ 不推荐:

ls | wc -l

原因:会统计目录、隐藏文件,且对特殊文件名不安全。

✅ 推荐:

find

九、总结速查表

需求 命令
当前目录普通文件 `find . -maxdepth 1 -type f
所有文件(含子目录) `find . -type f
所有目录 `find . -type d
排除目录 `find . -type f ! -path “./.git/*”

如果你有具体场景(比如:只统计 .log 文件、统计某个用户文件、统计大目录性能优化),可以告诉我,我可以给你更精确的命令。

0