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

您的位置: 首页 > 文章列表 > 系统应用 > Linux怎么查看目录的大小

Linux怎么查看目录的大小

  发布于2026-08-19 阅读(0)

扫一扫,手机访问

du -sh 是Linux下统计目录磁盘占用的最常用、最可靠命令,-s汇总总大小、-h以K/M/G人性化显示;ls -lh仅显示目录inode大小(通常4KB),不递归统计内容,无法反映真实磁盘占用。

Linux怎么查看目录的大小

直接用 du -sh 就能拿到目录总大小,这是最常用、最可靠的方式。其他命令(如 ls)只显示元数据或单个文件大小,不能反映真实磁盘占用。

为什么不用 ls -lh 查目录大小

ls -lh 显示的是目录本身的 inode 占用(通常 4KB),不是它里面所有文件加起来的磁盘使用量。比如一个装了 20GB 视频的 videos/ 目录,ls -lh videos/ 可能只显示 4.0K —— 这会严重误导你。

  • 它不递归统计子目录和文件
  • 对硬链接、稀疏文件、块对齐等磁盘实际占用完全不体现
  • 权限不足时可能直接跳过某些子项,结果更不可信

du -sh 的核心参数含义

du 是唯一专为“磁盘使用量”设计的命令,-sh 组合最实用:

  • -s:只输出总计,不列每个子项(避免刷屏)
  • -h:自动转成 KB/MB/GB,人眼可读
  • 不加 -s 会列出所有子目录大小,适合排查大目录位置
  • -c(如 du -shc dir1 dir2)会在末尾加一行 total

权限不足时 du 报错怎么办

常见错误信息:du: cannot access 'xxx': Permission denied。这不是命令错了,是当前用户没读取权限。

  • 先确认是否真需要看那些目录(比如 /var/log/etc 下某些子目录)
  • 如果必须查,用 sudo du -sh /path;但注意 sudo 后路径别写错,尤其别漏斜杠
  • 避免盲目 sudo du -sh /*,可能卡住或触发安全策略
  • du --exclude='/proc' --exclude='/sys' 可跳过虚拟文件系统,减少干扰

快速定位哪个子目录最占空间

想找出“罪魁祸首”,别手动翻,用管道组合:

  • du -h --max-depth=1 /path | sort -hr:只看一级子目录,按大小倒序
  • du -sh /path/*/ | sort -hr | head -5:排除隐藏目录,取前 5 名
  • 注意 sort -hr 依赖 GNU coreutils,旧系统可能不支持 -h,此时用 du -s /path/* | sort -nr
  • 如果目录层级深、文件极多,du 可能慢,这时 ncdu(交互式)比纯命令更直观

有个容易被忽视的要点:磁盘使用量并不等同于文件大小的总和。du统计的是实际占用的块(block),这会受到文件系统块大小、稀疏文件、压缩、快照等多种因素的影响。比如说有一个100MB的空洞文件(sparse file),ls -l显示的是100MB,但du可能只显示几KB——这其实是它正常的表现。

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

热门关注