在 linux 中查看目录占用空间可通过 du 命令实现,具体技巧包括:1. 使用 du -sh 查看目录总大小;2. 通过 du -ah 显示目录下所有子目录及文件的占用情况;3. 结合 sort 实现按大小排序输出;4. 利用 –threshold 过滤小文件以精简结果。这些方法可高效应对不同场景下的磁盘空间分析需求。
在 linux 系统中,查看目录占用空间是日常运维和管理中很常见的需求。直接使用 du 命令就能快速获取目录或文件的磁盘使用情况,但很多人只会用最基础的写法,其实它还有很多实用技巧可以提升效率。
查看目录总大小:加上 -s 参数
如果你只想知道某个目录占用了多少空间,而不想看到里面的子目录和文件详情,可以使用 -s(–summary)参数来只显示总计。
比如:
du -sh /var/log
这里 -h 是让结果以易读的方式显示(如 KB、MB),-s 表示汇总。这个组合非常适合快速判断一个目录的整体大小,避免被大量子项信息干扰。
显示目录下各子目录/文件的空间占用:常用 -h 和 -a
如果你想看看某个目录里到底哪些子目录或者文件占了最多空间,可以用下面这个组合:
du -ah /home/user/documents
- -a 表示列出所有文件和目录的大小,不只是子目录。
- 如果你去掉 -a,默认只显示子目录的大小汇总。
这样可以看到具体哪个文件比较大,方便做清理或迁移决策。
按大小排序查看:结合 sort 命令
有时候我们不光想看到各个目录的大小,还想知道谁最大、谁最小。这时候可以把 du 和 sort 结合起来用:
du -sh /home/* | sort -h
这行命令的意思是:
- du -sh /home/* 列出 /home 下每个用户的主目录大小。
- | sort -h 把这些结果按人类可读的大小排序(从小到大)。
如果想从大到小排,加个 -r 参数:
du -sh /home/* | sort -hr
这种方式特别适合排查哪个用户或者目录突然占了很多空间。
忽略小文件:使用 –threshold 控制输出粒度
有些目录下文件太多,真正关心的只是那些大文件。可以通过 –threshold 来过滤掉小于某个大小的条目:
du -sh --threshold=100M /data/*
上面这条命令只会显示 /data 目录下大于等于 100MB 的内容。这对于快速定位大文件非常有用,避免信息过载。
基本上就这些,du 虽然是个老命令,但搭配不同参数能解决很多实际问题。掌握几个常用的组合,能让你在处理磁盘空间问题时更高效。