如何查看目录的磁盘使用情况 du命令深度解析

如何使用 du 命令查看目录磁盘占用情况?1. 快速查看目录总大小:du -sh /path/to/Directory,-s 表示总计,-h 使输出更易读;2. 查看各子目录占用情况:du -h –max-depth=1 /path/to/directory,结合 sort 可按大小排序;3. 排除特定文件类型:通过 find 和 awk 组合实现统计分析;4. du 与 df 的区别在于 du 统计具体文件目录使用量,df 查看文件系统整体空间,删除但未释放的文件可能导致两者显示不一致。

如何查看目录的磁盘使用情况 du命令深度解析

查看目录的磁盘使用情况是日常系统维护中非常常见的需求,特别是在服务器环境中,及时了解磁盘空间占用情况有助于优化存储、排查异常。du 命令就是 linux 系统中专门用来统计目录或文件所占磁盘空间的工具

如何查看目录的磁盘使用情况 du命令深度解析


如何快速查看一个目录的总大小

最常用的 du 用法之一就是查看某个目录总共占用了多少空间。命令如下:

如何查看目录的磁盘使用情况 du命令深度解析

du -sh /path/to/directory
  • -s 表示 summary,只显示总计。
  • -h 表示 human-readable,让输出更易读(比如显示为 G、M 而不是纯数字)。

比如你想看看 /var/log 占了多少空间,执行这个命令就能快速知道结果。

注意:如果你不加 -s,du 会递归列出该目录下所有子目录和文件的大小,这在目录很大时可能会输出很多内容。


查看目录下各子目录的空间占用情况

如果你想看看某个目录下各个子目录分别用了多少空间,可以用:

du -h --max-depth=1 /path/to/directory
  • –max-depth=1 表示只统计一级子目录的内容,不会深入到更深的层级。

这样你可以快速定位哪个子目录占用了较多空间,适合用于排查大文件所在位置。

常见场景举例:

  • 检查 /home 下每个用户的家目录大小
  • 查看网站项目目录下哪些模块或日志目录占空间最多

小技巧:可以结合排序命令一起使用,比如:

du -h --max-depth=1 /var/www | sort -h

这样能按大小排序,一眼看出谁最大。


忽略特定类型的文件或目录

有时候你可能想忽略某些类型的数据,比如缓存文件或者日志文件。虽然 du 本身没有直接支持“排除”功能,但可以通过结合 find 或 grep 来实现。

例如,要统计 /var/www 的大小,但不想包括 .log 文件,可以这样写:

find /var/www -type f ! -name "*.log" -exec du -b {} + | awk '{sum += $1} END {print sum/1024/1024 " MB"}'

虽然稍微复杂一点,但在某些特定分析场景下非常有用。


du 和 df 的区别你真的清楚吗?

很多人会混淆 du 和 df 这两个命令。简单来说:

  • du 是统计具体文件和目录的实际磁盘使用量。
  • df 是查看整个文件系统的磁盘空间总量及剩余空间。

举个例子:如果你删除了一个正在被程序占用的日志文件,du 可能已经看不到它了,但 df 会显示这部分空间还没释放,因为文件描述符还在被进程持有。

所以当你发现 du 显示的空间和 df 不一致时,别急着怀疑命令出错,可能是有隐藏的大文件或已被删除但仍在使用的文件占着空间。


基本上就这些。掌握好 du 命令的不同参数组合,能帮你更好地管理服务器磁盘空间,也能在排查问题时节省不少时间。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享