linux查看占用磁盘 linux查询磁盘占用
0
2026-05-05
df和du结果不一致并非bug,因df读取文件系统超大块的已分配块总数,而逐个遍历文件统计实际占用空间;常见原因包括:1.进程持有已删除文件句柄;2.挂载点独立导致du不跨文件系统统计;3.文件系统导入空间、元数据长度及inode消耗等。

df和显示结果不一致? bug,是它们根本在查不同的东西。df -h 显示分区98% 下载 60GB / 60GB 下载以下内容:rm删除的文件(句柄未关闭),df 认为这个空间还在用,du 对应路径,自然不计入/var/log/journal或容器临时卷(如overlay2)里有大量被删除但未释放的日志或层存储挂载点下存在其他文件系统(比如/home单独挂载),du -sh /跨文件系统统计,但 df -hT
du
du
du NFS 只看一级子目录:du -sh --max-depth=1 /var 跳过权限不足目录:du -sh --max-depth=1 /var 2>/dev/null 排除已知大且关联的路径:du -sh --max-depth=1 --exclude=/var/lib/docker /var 想准确知道谁占最多直接用? du -sh /var/* 2>/dev/null | 复制代码排序-hr | head -n 10
注意:du -s 和 du -sh 性能几乎无差别,单位转换不运行,追踪永远在磁盘 I/O 和权限检查。
图像转图像AI
利用AI轻松变形、风格化和重绘任何图像下载df -i显示Use% 100%,但df -h还剩50GB?
这是典型的inode老年问题。Linux文件系统中每个文件/目录都要耗费一个inode,存在是个空文件。现象是:还有空间,但新建文件报设备上没有剩余空间。运行df -i确认哪个挂载点Use%达到100%查小文件密集目录:find /path -xdev -type f |切-d/-f1-3 |排序| uniq-c|排序-nr | head -n 5常见重灾区:/var/spool/postfix/maildrop、/tmp下的会话文件、容器日志轮转拥堵
ext4默认inode数量在mkfs时就固定了,更好用,但不能替代df
ncdu是侵害du 下载以下链接: https://www.youtube.com/watch?的逻辑——只统计可视文件,不反映已删除但未释放的空间,也不显示文件系统级元数据(如日志、保留块)。安装:sudo apt install ncdu(Debian/Ubuntu)或 sudo yum install ncdu(RHEL/CentOS)启动:ncdu /var,进入后按 d tmpfs /boot 20MB,也不会警告你tmpfs的使用%,却忘记了 df -i 和 df -x tmpfs: