惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园_首页
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
美团技术团队
IT之家
IT之家
罗磊的独立博客
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
月光博客
月光博客
Microsoft Azure Blog
Microsoft Azure Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
博客园 - 叶小钗
M
MIT News - Artificial intelligence
B
Blog RSS Feed
有赞技术团队
有赞技术团队
Y
Y Combinator Blog

博客园 - xiashengwang

Rocky Linux 9 安装docker Rocky Linux 9 与Centos区别,以及软件安装dnf命令 《Linux 基础点滴》:(17)SSH 密钥生成与管理 – 免密登录的利器 Linux服务器安全登录:从入门到实践 putty 基础 《Linux 基础点滴》:(16)firewalld 防火墙管理命令 《Linux 基础点滴》:(15)用户管理 – 创建、删除、权限与 sudo 《Linux 基础点滴》:(14)定时任务 – 用 crontab 自动化 《Linux 基础点滴》:(13)文本编辑入门 – 使用 Vim 《Linux 基础点滴》:(12)tldr – 简化版命令手册 《Linux 基础点滴》:(11)系统信息与资源监控 – 掌握服务器状态 《Linux 基础点滴》:(10)压缩与打包 – tar 的艺术 《Linux 基础点滴》:(9)查找与过滤 – find, grep, 管道 《Linux 基础点滴》:(8)网络基础 – 查看 IP、连通性与端口 《Linux 基础点滴》:(7)进程管理 – 查看与控制运行中的程序 《Linux 基础点滴》:(6)文件权限与所有者 – 保护你的文件 《Linux 基础点滴》:(5)文件与目录操作 – 增删改查必会命令 《Linux 基础点滴》:(3)Linux 文件系统概览 – 一切皆文件 《Linux 基础点滴》:(2)SSH 连接与基础命令 – 从登录到第一次操作 《Linux 基础点滴》:(1)初识 Linux 大家族 – 发行版分类与选择 docker学习(7)-docker compose 文件 docker学习(11)- 容器的日志(log) docker学习(10)-利用Github Action 自动化部署 docker学习(9)-Docker Swarm + Nginx 跨机器负载均衡 docker学习(8)-从 Windows 开发到 Linux 部署 docker学习(6)-数据持久化与网络通信 学会 Git Tag,让版本管理不再混乱 docker学习(5)-Dockerfile docker学习(4)-Docker常用命令 docker学习(3)-一个简单的例子
《Linux 基础点滴》:(4)磁盘空间查看 – df 和 du 的妙用
xiashengwang · 2026-04-20 · via 博客园 - xiashengwang

2026-04-20 17:15  xiashengwang  阅读(21)  评论()    收藏  举报

第 4 篇:磁盘空间查看 – df 和 du 的妙用

学习目标

  • 学会使用 df 查看文件系统整体磁盘使用量
  • 学会使用 du 统计目录或文件大小
  • 理解 dfdu 结果不一致的原因

核心概念

df(disk free)

查看已挂载文件系统的总容量、已用、可用、使用率。

常用选项:

  • -h:人类可读(GB, MB)
  • -i:查看 inode 使用情况(文件数量限制)
  • -T:显示文件系统类型(如 ext4, xfs)

du(disk usage)

统计指定目录或文件的实际大小。

常用选项:

  • -h:人类可读
  • -s:只显示总和
  • --max-depth=N:显示 N 层子目录的大小

区别与联系

  • df 查看分区级别(包括被删除但仍被进程占用的空间)
  • du 扫描目录树(不包括未释放的已删除文件)

df 显示已满但 du 统计很小,通常是文件被删除但进程未释放。

动手实验

实验 1:使用 df

df -h
df -i   # 观察 inode 使用率,若 100% 则无法创建新文件

实验 2:使用 du

du -sh /home           # 查看 /home 总大小
du -h --max-depth=1 /var | sort -hr | head -5  # 找出 /var 下最大的子目录

实验 3:模拟 df 和 du 差异

# 创建一个文件并占用空间
dd if=/dev/zero of=/tmp/bigfile bs=1M count=100
# 模拟进程占用(打开文件但未关闭)
tail -f /tmp/bigfile &
# 删除文件
rm /tmp/bigfile
# 此时 df 和 du /tmp 结果不同
df -h /tmp
du -sh /tmp
# 清理:找到进程 kill
lsof | grep bigfile   # 找到 PID
kill PID

常见错误

  • du: cannot read directory:权限不足,加 sudo
  • df -h 显示 use% 100% 但无法找到大文件:用 lsof | grep deleted 找未释放的进程

思考题

  1. 为什么 df -h 显示已用 + 可用 不等于总容量?
  2. 如何找出 /var 下大于 100M 的文件?
find /var -type f -size +100M