Linux 磁盘查看命令详解df 与 du在 Linux 系统运维中查看磁盘空间、定位大文件是高频操作。df和du是最核心的两个磁盘相关命令二者功能相近但用途截然不同。本文从作用、语法、常用参数、实战场景、区别对比等方面详细讲解方便日常运维与问题排查。一、df 命令查看文件系统磁盘使用情况1. 命令含义dfdisk free用于查看整个磁盘分区/文件系统的总容量、已用空间、剩余空间、挂载点等信息。它读取的是文件系统超级块superblock中的元数据因此速度极快适合快速判断分区是否爆满。2. 基本语法df[选项][文件/目录]不指定路径时默认显示所有已挂载文件系统。若指定文件或目录则显示该路径所在分区的使用情况。3. 常用核心参数参数说明-h以人类可读格式显示KB/MB/GB最常用-T显示文件系统类型ext4/xfs/tmpfs 等-i查看 inode 使用情况文件数量占用-a显示所有文件系统包括伪文件系统proc、tmpfs-t 类型只显示指定类型的文件系统-x 类型排除指定类型的文件系统4. 常用示例1查看所有分区空间推荐df-h输出字段说明Filesystem设备或分区名Size总容量Used已使用空间Avail可用空间Use%使用率Mounted on挂载点2查看文件系统类型df-Th-T显示类型-h人类可读两者结合非常实用。3查看指定目录所在分区df-h/home4查看 inode 占用解决“磁盘未满但无法创建文件”问题df-i当Use%达到 100% 时即使还有空间也无法新建文件。5过滤掉临时文件系统让输出更干净df-h-xtmpfs-xdevtmpfs二、du 命令查看文件/目录磁盘占用大小1. 命令含义dudisk usage用于统计指定目录或文件实际占用的磁盘空间以块为单位计算。它会递归遍历目录下所有文件统计精确但速度比df慢尤其在大目录下耗时明显。2. 基本语法du[选项][文件/目录]不指定路径时默认统计当前目录。3. 常用核心参数参数说明-h人类可读格式显示-s只显示总计大小不展开子目录-a显示所有文件和目录的大小默认仅显示目录-d N/--max-depthN限制递归深度为 N 级-d 1仅看一级子目录-c最后显示总计大小--excludePATTERN排除匹配的文件或目录支持通配符4. 常用示例1查看当前目录总大小du-sh.2查看指定目录总大小du-sh/var/log3查看一级子目录大小快速定位大目录du-h--max-depth1/或简写为GNU 版本支持du-hd1/4显示目录下所有文件大小du-ah/etc5排除某些文件后统计du-sh--exclude*.log/var也可排除多个模式du-sh--exclude*.log--exclude*.tmp/var6统计多个目录并显示总和du-ch/home /root /usr末尾会自动输出一行总计。三、df 与 du 的核心区别对比项dfdu统计对象磁盘分区/文件系统目录/单个文件统计速度快读取超级块元数据慢递归遍历所有文件统计范围全局空间整个分区具体路径按需统计数据来源文件系统元数据实际文件占用的磁盘块典型用途查看分区是否满定位大文件、大目录常见现象df 和 du 结果不一致表现df显示磁盘已满但du统计的总和远小于分区容量原因某个文件已被rm删除但仍然被某个运行的进程打开未释放句柄导致空间未真正释放排查方法lsof|grepdeleted找到占用进程的 PID然后重启该进程或直接kill -9 PID空间即可释放预防提示大文件建议使用 /path/to/file清空而非直接rm四、实战场景快速定位磁盘爆满原因先看整体用df -h查看哪个分区使用率接近 100%进入分区挂载点例如cd /var逐层定位大目录用du -h --max-depth1查看一级子目录大小深入最大目录重复上一步直到找到可疑目录找出 Top 10 大文件使用findsort组合示例命令链df-hcd/vardu-h--max-depth1du-ah/var/log|sort-hr|head-10⚠️ 注意sort -hr中的-h参数在部分旧版 sort 中不支持若报错可改用sort -rn按数字倒序。更稳健的 Top 10 大文件查找find/var/log-typef-execdu-h{}2/dev/null|sort-hr|head-10五、补充说明命令安装与最小化系统在某些 Docker 容器或最小化 Linux 系统中df和du可能默认可用属于coreutils包但如果提示未找到可安装Debian/UbuntuaptinstallcoreutilsCentOS/RHELyuminstallcoreutilslsof命令需要单独安装Debian/Ubuntuapt install lsofCentOS/RHELyum install lsof六、总结场景推荐命令快速检查分区是否爆满df -h查看 inode 是否耗尽df -i统计某个目录总大小du -sh 目录定位当前目录下的大目录du -hd1查找最大的一批文件find du sort组合解决 df 和 du 结果不一致lsof | grep deleteddf 看分区整体空间快速判断是否爆满du 看目录/文件大小精准定位占用源日常优先使用-h参数可读性最强磁盘空间异常时先 df 再 du配合lsof排查删除但未释放的文件掌握这两个命令Linux 磁盘管理将不再困难。