Linux查看目录文件大小有多种实用方法,ls -lh可列出文件详细信息并显示人类可读大小;du -sh快速统计目录总大小,--max-depth=1限制遍历层级;交互式工具ncdu能直观浏览并删除文件,结合find可筛选特定类型文件,如find . -type f -exec du -sh {} \;,掌握这些技巧能高效分析磁盘占用,快速定位大文件或目录,优化存储空间管理。
在Linux系统管理中,磁盘空间管理是一项日常重要任务,无论是排查服务器磁盘占用异常,还是清理本地电脑的冗余文件,快速查看一个目录内的文件大小都是必备技能,本文将详细介绍Linux系统中查看目录文件大小的常用命令、参数组合及实用技巧,帮助你高效掌握磁盘空间分析能力。
核心命令:du——目录磁盘使用量统计器
在Linux中,du(disk usage)命令是专门用于估算文件和目录磁盘使用空间的工具,它通过递归遍历目录中的所有子目录和文件,统计每个条目占用的块数(默认以512字节为1块),并最终汇总结果,要查看目录内的文件大小,du命令是最直接、最常用的选择。
du命令基础用法:快速查看目录大小
查看指定目录的总大小(默认单位:KB)
du /var/log
执行后,du会递归显示/var/log目录下所有子目录和文件的大小,最后一行是总和(单位为KB)。

8 /var/log/apt
4 /var/log/dist-upgrade
1204 /var/log
这里1204表示/var/log目录及其所有子文件共占用1204KB磁盘空间。
人类可读格式:-h参数让结果更直观
默认情况下,du以KB、MB等显示结果,但数字可能不够直观,使用-h(human-readable)参数,会自动转换为易读的格式(K、M、G):
du -h /var/log
输出示例:
8K /var/log/apt
4K /var/log/dist-upgrade
1.2M /var/log
这样一眼就能看出/var/log目录占用约1.2MB空间。
仅显示目录总大小:-s参数避免冗余信息
如果不需要查看每个子目录的详情,只想知道目录的总大小,可以用-s(summarize)参数:
du -sh /var/log
输出:
2M /var/log
-sh是-s和-h的组合,既汇总结果又以人类可读格式显示,是日常最常用的参数组合之一。
进阶用法:按需求定制输出内容
显示目录下所有文件的大小(包含子目录文件):-a参数
默认情况下,du不显示文件大小,仅显示目录,使用-a(all)参数可以同时列出文件和目录的大小:
du -ah /var/log --max-depth=1
这里结合--max-depth=1(限制递归深度为1层),仅显示/var/log直属目录和文件的大小,避免子目录的冗余输出:
0K /var/log/apt/term.log
8.0K /var/log/apt
4.0K /var/log/dist-upgrade
1.2M /var/log
限制递归深度:--max-depth参数
对于深层目录(如/home),递归所有子目录可能会输出大量信息,通过--max-depth=n可以限制递归层数(n为正整数):
# 查看/var/log目录及其直属子目录的大小(不递归孙目录) du -h --max-depth=2 /var/log
输出示例:
0K /var/log/apt
4.0K /var/log/dist-upgrade
12K /var/log/journal
1.2M /var/log
按大小排序:结合sort命令
要找出目录下占用空间最大的子目录或文件,可以先将结果按大小排序(从大到小):
# 查看当前目录下所有子目录大小,并按从大到小排序 du -h --max-depth=1 . | sort -hr
说明:
du -h --max-depth=1 .:统计当前目录()下直属子目录的大小,人类可读格式。| sort -hr:通过管道将结果传递给sort命令,-h表示按人类可读的数字大小排序,-r表示降序(从大到小)。
输出示例:
2M ./var/log
12K ./var/lib
8.0K ./var/cache
4.0K ./var/tmp
排除特定文件/目录:--exclude参数
如果目录中有临时文件或日志文件不需要统计,可以用--exclude参数排除匹配模式:
# 统计/home/user目录大小,排除所有.tmp文件和Downloads子目录 du -sh --exclude="*.tmp" --exclude="Downloads" /home/user
辅助命令:df与ncdu——补充视角的磁盘分析工具
df:查看文件系统整体磁盘使用情况
df(disk free)命令用于查看文件系统的磁盘空间使用情况(如、/home等分区的剩余空间),与du的侧重点不同:
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 15G 33G 31% /
/dev/sdb1 100G 40G 60G 40% /home
df适合快速判断哪个分区磁盘紧张,而du用于定位分区内具体的大目录/文件。
ncdu:交互式磁盘使用分析工具(需安装)
如果需要更友好的交互式界面(类似htop对磁盘空间的分析),可以安装ncdu(NCurses Disk Usage):
# Ubuntu/Debian安装 sudo apt install ncdu # CentOS/RHEL安装 sudo yum install ncdu

