【linux】使用 `du` 命令检察各个目录的大小,并按大小排序

[复制链接]
发表于 2026-10-3 21:35:01 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

磁盘空间莫名其妙被吃,第一件事就是看每个目录各占了多少。Linux 下的 du 命令天生干这个活,再接一个 sort 排个序,谁在偷偷变大一眼就能看清。本文给出从打开终端到按大小倒序的完整命令,并把几个参数的作用拆开讲。

第一步:打开终端

按 Command + Space 调出 Spotlight 搜索,输入 Terminal 并打开它。(Windows 上直接打开终端或命令提示符即可,后面的命令完全一致。)

第二步:用 du 查看目录大小

下面这条命令用来查看当前目录下"一级子目录"的大小,并以人类可读的形式显示:

du -hd 1

第三步:按大小排序

要按大小排序,需要配合 sort 命令使用:

du -hd 1 | sort -hr

参数详细说明

  • du -hd 1:显示当前目录下一级子目录的大小,并以人类可读的形式输出(如 KB、MB、GB 等)。其中 -h 让单位自动伸缩,-d 1 表示只深入一层。
  • |:管道符,把前一个命令的输出传递给下一个命令。
  • sort -hr:按数值大小排序,并以逆序(从大到小)显示结果。-h 表示按人类可读的单位比较,-r 表示倒序。

实际示例

假设当前目录下有以下文件和子目录,执行上面命令后的输出大致是这样:

$ du -hd 1 | sort -hr
2.1G ./Movies
1.4G ./Documents
700M ./Downloads
200M ./Music
50M  ./Desktop
10M  ./Pictures
1K   ./Public

这样就能清楚地看到每个子目录的大小,并按从大到小的顺序排序,最大的排在最上面。

额外建议

如果要查看特定目录(如 ~/Downloads)下的文件和子目录大小,可以把命令里的路径换成目标目录:

du -hd 1 ~/Downloads | sort -hr

这条会显示 ~/Downloads 目录下各个子目录的大小并按大小排序。排查时建议从home 目录根上跑一层 du -hd 1,先定位到是哪个大目录,再钻进去继续 du -hd 2、du -hd 3 逐层下探,比一上来就全盘扫要快得多。

小结

查看目录占用并排序就一句:du -hd 1 | sort -hr。-h 管单位可读,-d 1 管深度,sort 那边 -h 管按带单位的数字比大小、-r 管倒序,四个开关各司其职。想看指定目录就把路径加在 du 后面,想看更深一层就把 1 改成 2 或 3。定位大文件建议自顶向下逐层收窄,别一上来就 du -ah 全扫,输出会淹没在成百上千个文件里。

qidao123.com企服评测-应用市场 编辑提示:本文为站点编辑整理的 Linux du 命令查看目录大小并按大小排序的实操笔记,命令已按原意规范化书写,可直接在 GNU coreutils 环境下执行;本站不提供任何软件下载或加好友服务。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表