在Linux中,统计目录文件大小是日常管理的重要需求,核心命令du(disk usage)可高效实现:du -sh能快速显示当前目录总大小(-s汇总,-h人类可读格式);du -h --max-depth=1则可查看一级子目录的占用情况,便于定位大容量文件夹,若需交互式分析,可使用ncdu,它提供可视化界面,支持实时浏览和删除文件,这些方法能帮助用户快速掌握目录存储占用,有效优化磁盘空间管理。
在Linux系统管理中,统计目录下文件的大小是常见需求,比如排查磁盘占用、清理冗余文件、分析存储空间分布等,本文将介绍多种实用命令,帮助您高效完成目录文件大小的统计任务。
基础命令:du——目录空间占用分析工具
du(disk usage)是Linux中最常用的目录空间统计命令,默认以字节为单位显示目录及其子目录的占用空间。
基本用法:统计当前目录总大小
du -sh .
-s(summarize):仅显示总计,不递归显示子目录详情;-h(human-readable):以人性化单位显示(KB、MB、GB);- 表示当前目录,可替换为任意目录路径(如
/var/log)。
示例输出:

2G .
递归显示子目录大小(按大小排序)
若需查看目录下各子目录的占用情况并排序:
du -h | sort -hr
sort -hr:按数值从大到小排序(-h确保按单位比较,-r降序)。
示例输出:
2G .
400M ./downloads
300M ./videos
150M ./documents
50K ./temp
排除特定文件或目录
若需排除某些文件(如.log文件)或目录(如temp):
du -sh --exclude="*.log" --exclude="temp" .
--exclude:指定排除的文件名或目录名,支持通配符(如*.tmp)。
限制递归深度
仅统计当前目录及一级子目录的大小(不递归更深层目录):
du -sh --max-depth=1 .
示例输出:
2G .
400M ./downloads
300M ./videos
500M ./others
进阶方法:find+du——按条件筛选文件统计
若需按文件类型、修改时间等条件筛选文件并统计大小,可结合find命令与du。
统计特定扩展名的文件总大小
统计当前目录下所有.mp4文件的总大小:
find . -type f -name "*.mp4" -exec du -ch {} + | grep total$
-type f:仅查找普通文件(排除目录、链接等);-name "*.mp4":匹配文件名以.mp4-exec du -ch {} +:对每个匹配文件执行du -ch,比\;更高效(批量处理);grep total$:过滤出du输出的汇总行(total)。
示例输出:
5G total
统计最近7天内修改的文件大小
find . -type f -mtime -7 -exec du -ch {} + | grep total
-mtime -7:查找7天内修改过的文件(-n表示n天内,+n表示n天前)。
统计大于100MB的文件
find . -type f -size +100M -exec du -ch {} + | grep total
-size +100M:查找大小大于100MB的文件(支持大于、小于,单位如K/M/G)。
快速统计:ls+awk——当前目录文件大小汇总
若仅需统计当前目录(不含子目录)下所有文件的总大小,可结合ls和awk:
ls -l | awk '{sum+=$5} END {print "Total size:", sum/1024/1024, "MB"}'
ls -l:列出文件详细信息(第5列为文件大小,单位为字节);awk:逐行处理,累加第5列的值,最后转换为MB输出。
示例输出:
Total size: 512.3 MB
可视化工具:ncdu——交互式目录分析
若需交互式查看目录大小分布(支持导航、删除文件等),可安装ncdu(NCurses Disk Usage):
安装
# Debian/Ubuntu sudo apt install ncdu # CentOS/RHEL sudo yum install ncdu
使用
ncdu /path/to/directory
运行后,可通过上下键导航,按d删除文件,按n隐藏文件,按查看帮助,直观分析目录空间占用。
注意事项
- 权限问题:若统计的目录无访问权限(如
/root),需使用sudo获取权限(如sudo du -sh /root)。 - 符号链接:
du默认跟随符号链接(统计链接指向的实际文件大小),若需排除链接,可加-l参数(du -shl)。 - 文件名含空格/特殊字符:
find+xargs组合可处理复杂文件名(如find . -print0 | xargs -0 du -ch)。
| 需求场景 | 推荐命令 |
|---|---|
| 统计目录总大小 | du -sh 目录 |
| 查看子目录大小并排序 | du -h | sort -hr |
| 按条件筛选文件统计 |
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

