在 Linux 运维和日常使用中,查看文件或目录大小是非常常见的操作。无论是排查磁盘空间不足、定位大目录、分析日志膨胀,还是确认某个文件是否过大,都离不开这类命令。
一、为什么要查看文件目录大小?
常见场景包括:
这类问题如果只看磁盘总使用率还不够,往往还需要进一步看到“到底是谁占了空间”。
二、最常用的命令有哪些?
在 Linux 中,查看文件和目录大小最常用的命令主要有:
如果目标是“找出某个目录下谁最大”,通常优先用 du;如果只是“看某个文件有多大”,用 ls -lh 就够了。
三、查看目录大小:du
1. 查看当前目录下各文件和子目录大小
其中:
这条命令非常适合快速找出当前目录下哪个子目录最占空间。
2. 查看某个目录总大小
只看总量,不展开子目录,适合快速判断某个目录是否异常膨胀。
3. 查看目录下每一级子目录大小
这条命令会列出 /var 下一层子目录的大小,非常适合逐级排查空间问题。
4. 按大小排序查看最大的目录
du -h --max-depth=1 /var | sort -hr
这样能很快看到哪个目录最大,适合磁盘排障时使用。
四、查看文件大小:ls -lh
如果只是想看某个文件多大,最直接的方式是:
输出中会直接显示文件大小,例如 120M、2.3G。
如果想看当前目录下文件列表及大小:
如果希望按文件大小排序:
其中:
五、查看磁盘整体使用情况:df -h
有时候问题并不是某个目录,而是整个磁盘分区已经快满了。这时可以先看整体情况:
它会显示各个挂载点的总容量、已用空间、可用空间和使用率。
常见排查思路是:
- 再进入对应目录,用
du -h --max-depth=1 逐层定位
六、常见实战示例
1. 查看 /var/log 总大小
适合判断日志目录是否占用了过多空间。
2. 查看 /var 下一层目录大小并排序
du -h --max-depth=1 /var | sort -hr
能快速定位是 /var/log、/var/lib 还是 /var/cache 占用最多。
3. 查看当前目录下最大的文件
适合快速找出当前目录中最大的文件。
4. 查找大于 1G 的文件
find /data -type f -size +1G
如果想进一步找超大文件,这条命令也很常用。
5. 查看指定目录总大小并排除无关输出
适合快速对比多个应用目录谁占空间更多。
七、常见问题与建议
为什么 du 和 ls 看到的大小不一样?ls 显示的是文件本身大小,du 更关注文件实际占用的磁盘空间,两者在某些场景下可能不同。
为什么看目录大小时优先推荐 du? 因为目录本身并不直接体现它下面所有文件的总占用,du 更适合看“整体占了多少空间”。
排查磁盘满了时先用哪个命令? 建议先用 df -h 看分区,再用 du 深入定位。
du -h --max-depth=1 /path | sort -hr
- 查看大目录时命令很慢怎么办? 说明目录中文件很多,可以先缩小范围,按层级逐步排查,避免一次性扫描过大目录。
八、总结
查看 Linux 文件和目录大小,最常用的就是这几条:
du -sh /pathdu -h --max-depth=1 /path | sort -hrls -lh file.logls -lhSdf -h
如果只是看单个文件大小,用 ls -lh;如果要找哪个目录最占空间,用 du;如果要看整个磁盘是否快满,用 df -h。掌握这几条命令后,大多数“空间不够、目录太大、日志膨胀”的问题都能快速定位。