需用df查整体磁盘使用,du分析目录占用,find定位大文件,快照对比监控变化,并排查隐藏文件及未释放的已删文件。

如果您需要了解当前Linux系统中磁盘空间的使用情况,或定位哪些目录占用了大量存储,则需借助系统内置的磁盘分析工具。以下是针对磁盘空间查看与占用分析的具体操作步骤:
一、使用df命令查看文件系统整体磁盘使用情况
df(disk filesystem)用于显示挂载文件系统的总容量、已用空间、可用空间及使用百分比,反映的是块设备级别的整体分配状态。
1、在终端中输入 df -h 并回车,以人类可读格式(如GB、MB)显示各挂载点的空间信息。
2、若需查看inode使用情况(避免因inode耗尽导致无法写入),执行 df -i。
3、如仅关注根目录所在文件系统,运行 df -h / 即可获取根分区的详细空间数据。
二、使用du命令分析指定目录的磁盘占用详情
du(disk usage)用于递归统计目录及其子目录所占磁盘空间,适用于定位具体路径下的大文件或冗余数据。
1、查看当前目录下各子目录大小(按大小降序排列),执行:du -sh * | sort -hr。
2、扫描指定路径(例如 /var/log)并显示前10个最大子目录,运行:du -sh /var/log/* 2>/dev/null | sort -hr | head -n 10。
3、跳过符号链接并排除特定类型路径(如/proc、/sys),使用:du -shx --exclude="/proc" --exclude="/sys" / | sort -hr | head -n 20。
三、结合find与du定位超大文件
当怀疑存在单个巨型文件导致空间异常时,可利用find筛选出大于指定阈值的文件,并调用du确认其实际磁盘占用。
1、查找大于500MB的所有普通文件,执行:find / -type f -size +500M 2>/dev/null。
2、对上一步结果中的每个文件运行du -h输出其大小,使用:find / -type f -size +500M -exec du -h {} \; 2>/dev/null | sort -hr | head -n 10。
3、限制搜索范围至根目录下的常见高占用区域(如/home、/var),提高效率:find /home /var -type f -size +1G -exec du -h {} \; 2>/dev/null | sort -hr | head -n 5。
四、实时监控磁盘变化的动态方法
对于持续增长的空间占用问题,可通过周期性采样对比du结果,识别短时间内新增的大容量内容。
1、将当前根目录占用快照保存为临时文件:du -shx / > /tmp/du_snapshot_1.txt 2>/dev/null。
2、等待一段时间后生成新快照:du -shx / > /tmp/du_snapshot_2.txt 2>/dev/null。
3、比较两次快照差异,突出显示增长最显著的路径:diff /tmp/du_snapshot_1.txt /tmp/du_snapshot_2.txt | grep "^>" | sort -k1,1hr。
五、检查隐藏文件与特殊挂载点的影响
部分空间可能被隐藏文件、容器卷、未卸载的旧挂载或已删除但仍在被进程占用的文件占据,需针对性排查。
1、列出所有挂载点并检查是否包含重复或异常挂载:mount | grep -E "(ext|btrfs|xfs|zfs)"。
2、查看已被删除但仍被进程打开的大文件(释放空间需终止对应进程):lsof +L1 或 lsof | grep deleted | awk '{print $7,$9}' | sort -nr | head -n 10。
3、扫描用户主目录下的隐藏目录(如.cache、.local/share/Trash):du -sh ~/.cache ~/.local/share/Trash 2>/dev/null | sort -hr。








