如何查看磁盘使用情况 df和du命令高级用法

本文介绍了 linux 中 df 和 du 命令的高级用法。1. df 可通过 -h、-t、-i 等参数查看易读格式、指定文件系统类型及 inode 使用情况;2. du 配合 -sh、–max-depth=1 和 sort 可灵活统计并排序目录大小;3. du 的 –exclude 参数可过滤特定文件或目录;4. find 与 du 结合可定位大文件并进行清理。掌握这些技巧有助于高效排查磁盘问题。

如何查看磁盘使用情况 df和du命令高级用法

磁盘使用情况是运维和日常系统管理中非常常见的检查项,尤其在 linux 系统中,df 和 du 是两个最常用的命令。但很多人只停留在基本用法上,其实它们还有不少实用的高级技巧。

如何查看磁盘使用情况 df和du命令高级用法


1. 查看整体磁盘占用情况:df 的进阶用法

df 命令用于查看文件系统的整体使用情况。默认执行 df 输出的信息可能不太直观,推荐加上 -h 参数,让结果以易读的方式展示(如 GB、MB):

如何查看磁盘使用情况 df和du命令高级用法

df -h

如果你想查看特定文件系统的类型,比如只看 ext4 或 xfs 文件系统,可以结合 -t 参数:

df -ht ext4

还可以通过 -i 查看 inode 使用情况,这对排查“磁盘没满但无法写入”的问题很有帮助:

如何查看磁盘使用情况 df和du命令高级用法

df -i

小贴士:有些时候你发现磁盘满了,但 du 显示目录占用不大,可能是被删除但仍被进程占用的文件占用了空间,可以用 lsof | grep deleted 检查。


2. 统计目录或文件大小:du 的灵活使用

du 主要用来统计目录或文件所占磁盘空间。基础用法是:

du -sh /path/to/dir
  • -s 表示汇总总大小;
  • -h 让输出更易读。

如果你想知道某个目录下各个子目录的大小,可以加上 -h 和 –max-depth=1:

du -sh --max-depth=1 /var/

这会列出 /var/ 下每个一级子目录的大小,方便快速定位大目录。

还有一种常见场景是排序查看最大目录,这时候可以配合 sort 命令:

du -sh /var/* | sort -h

这样就能按大小排序,一眼看出哪个目录最“吃”空间。


3. 排除某些文件或目录:du 的过滤技巧

有时候我们只想统计某类文件或者排除一些不关心的内容,比如日志目录或缓存目录,可以用 –exclude 参数:

du -sh --exclude="*.log" /path/to/dir

这条命令会统计目录大小,但忽略所有 .log 文件。

也可以排除整个子目录:

du -sh --exclude="/path/to/dir/cache" /path/to/dir

这对于分析代码仓库或项目结构时特别有用,可以排除掉像 node_modules 这样的大目录。


4. 结合 find 找出大文件并清理

除了查看整体和目录级别的使用情况,有时我们也需要找出具体的大文件来处理。

一个常用组合是 find + du:

find /path/to/search -type f -size +100M -exec du -h {} ; | sort -hr | head -n 20

这段命令的意思是:

  • 在指定路径下找大于 100M 的文件;
  • 对找到的每个文件执行 du -h;
  • 按大小排序后显示前 20 条。

这个方法能帮你快速定位哪些文件是“罪魁祸首”,进而决定是否清理或归档。


基本上就这些了。df 和 du 虽然简单,但搭配参数和其它命令一起使用,就能发挥出强大的功能。掌握这些用法,在排查磁盘问题时效率会高很多,也不容易遗漏细节。

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