商城首页欢迎来到中国正版软件门户

您的位置:首页 >Linux怎么查看目录大小并排序

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。

. ↩

Linux怎么查看目录大小并排序

直接用 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.gz1.7G ./logs/ 并列,需人工区分是删文件还是清目录
  • 扫描根目录时务必加 -x(即 du -ahx /),否则碰到 /proc/sys 这类虚拟文件系统会卡死或报错

用 ncdu 交互式钻取(适合复杂目录结构)

当目录嵌套深、内容杂(如用户家目录、Docker 数据卷),肉眼扫几十行文本效率低且易漏:

  • 安装后首次运行 ncdu /path 前,必须加 --exclude 过滤虚拟文件系统,例如 ncdu / --exclude /proc --exclude /sys,否则会在 /proc 上卡死甚至触发 OOM killer
  • 进目录后按 s 键重排序,注意:默认排的是“该目录下所有子项的磁盘占用总和”,不是“子项自身大小”;想看纯文件大小,得先 cd 进去再按 s
  • i 键可查看高亮项的实际磁盘占用(on-disk size),比逻辑大小更真实

真正难的不是命令怎么写,而是判断“哪个大”之后该不该动——比如 /var/log/journal 占 3G,清空可能影响故障排查;~/.cache 占 5G,多数情况可安全清理。别光盯着数字,得结合路径语义做决策。

本文转载于:https://www.php.cn/faq/2972192.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注