发布于2026-08-19 阅读(0)
扫一扫,手机访问
du -hx --max-depth=1 / | sort -hr 必须加 -x 防跨挂载点扫描失真,加 2>/dev/null 避免 Permission denied 干扰排序;find 查大文件需严格大小写、-type f 和 -xdev。

若不加 -x ,du 就会跨挂载点扫描,像 /mnt、/proc 或 Docker overlay2 挂载目录这些地方都可能会被误闯,结果不仅会失真,甚至可能卡死;而如果不加 2>/dev/null ,大量的 Permission denied 错误行就会混入其中,对排序造成干扰——尤其是在扫描 / 时,这些错误可能比有效数据还要多得多。
正确的操作姿势为:sudo du -hx --max-depth=1 / | sort -hr。其中,-h用于输出可读单位,-x可锁定当前文件系统,--max-depth=1能控制仅查看一级子项,而只有使用sort -hr才能按GB/MB正确倒序排列(-n会将10G当作字符串排在2G之前)。
find 对大小写敏感:+1G 中的 G 必须大写,小写 +1g 会被忽略;+100M 合法,但 +100m 表示 512 字节块,实际约 50KB,完全不是“大文件”。
-type f:否则会匹配到目录、设备文件、socket,甚至 /proc 下的伪文件-xdev:防止跨分区扫描,比如从 / 开始却扫进 NFS 或 USB 挂载点find /var -xdev -type f -size +500M -ls,比 -exec ls -lh {} ; 更快、更稳定ncdu 默认会递归所有子挂载点,如果系统挂了外接硬盘、NFS 或 Docker overlay2,它会把那些空间也计入根目录统计,导致你误判“/var/lib/docker 占了 80G”,其实那 80G 是另一个挂载设备上的数据。
执行 sudo ncdu -x / 才真正只统计根文件系统本身。配合 df -h 先确认哪个挂载点满了,再针对性扫——比如 df -h 显示 /home 使用率 98%,那就直接 ncdu /home,别扫全盘。
du -sh /var/log 显示 4G,但 find /var/log -type f -size +10M 只找出几个小文件——这不是命令错,而是统计逻辑不同:
du 统计磁盘块占用(硬链接只算一次),find -size 查的是文件逻辑大小(每个硬链接都算一份)rm 的日志,路径没了但 inode 没释放,du 计入,find 找不到lsof +L1,它会列出所有 size > 0 且 link count = 0 的打开文件真正要清理的是磁盘块,不是文件名长度;所以优先信 du,但查不到对应文件时,lsof +L1 是最后一道排查手段。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9