您的位置:首页 >Linux怎么查看目录大小并排序
发布于2026-08-11 阅读(0)
扫一扫,手机访问
想快速找出当前目录里最占空间的子项,直接用du -sh | sort -hr通常就够了;不过这个写法默认不会把隐藏文件算进去,而且一旦碰到权限不足,还会直接报错。更稳妥的做法,是用du -sh .1 或du -sh ./ 2>/dev/null | sort -hr,把隐藏项一并覆盖掉,同时把权限报错静默处理。要是还想继续往下追,递归排查更深层的大文件,就用du -ah /path | sort -hr | head -n 20。
. ↩
直接用 du -sh * 加 sort -hr 就能快速定位当前目录下谁占空间最多,但默认不包含隐藏项、遇权限错误会报错、深层大文件容易被忽略——得根据场景选对参数组合。
只运行 du -sh * 会漏掉 .git、.cache 这类隐藏目录。正确做法是显式匹配:
du -sh .[^.]* *:覆盖以 . 开头、但非 . 或 .. 的项,再补上非隐藏项du -sh ./* 2>/dev/null:统一用 ./* 展开所有项,2>/dev/null 静默跳过权限拒绝(如 /var/log/journal)| sort -hr 才能按人类可读单位逆序排(最大在前);若系统 locale 不是 C/en_US.UTF-8,加 LC_ALL=C 防止排序错乱怀疑大文件藏在深层子目录里(比如 /var/lib/docker/overlay2/...),就得递归统计:
du -ah /path | sort -hr | head -n 20:列出所有文件+目录,取前 20 条。注意 -a 是关键,没它就只统计目录,漏掉单个大文件1.8G ./data/archive.tar.gz 和 1.7G ./logs/ 并列,需人工区分是删文件还是清目录-x(即 du -ahx /),否则碰到 /proc、/sys 这类虚拟文件系统会卡死或报错当目录嵌套深、内容杂(如用户家目录、Docker 数据卷),肉眼扫几十行文本效率低且易漏:
ncdu /path 前,必须加 --exclude 过滤虚拟文件系统,例如 ncdu / --exclude /proc --exclude /sys,否则会在 /proc 上卡死甚至触发 OOM killers 键重排序,注意:默认排的是“该目录下所有子项的磁盘占用总和”,不是“子项自身大小”;想看纯文件大小,得先 cd 进去再按 si 键可查看高亮项的实际磁盘占用(on-disk size),比逻辑大小更真实真正难的不是命令怎么写,而是判断“哪个大”之后该不该动——比如 /var/log/journal 占 3G,清空可能影响故障排查;~/.cache 占 5G,多数情况可安全清理。别光盯着数字,得结合路径语义做决策。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9