了解哪些文件和目录占用了最多的磁盘空间,可以帮助系统管理员及时采取措施,如清理不必要的文件、优化数据存储结构或扩展存储空间
本文将详细介绍Linux下查询文件和目录占用大小的关键命令,以及如何利用这些命令进行高效的存储空间管理
一、基础命令:`du`与`df` 在Linux系统中,查询磁盘使用情况的两个最基本且强大的工具是`du`(disk usage)和`df`(disk free)
它们各自提供了不同的视角来帮助用户理解磁盘空间的使用情况
1.`df`命令:查看整体磁盘使用情况 `df`命令显示文件系统的整体磁盘空间使用情况,包括已用空间、可用空间、使用百分比以及挂载点
运行`df -h`(`-h`选项表示以人类可读的格式显示,如KB、MB、GB)可以迅速获得这些信息
df -h 输出示例: Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 28G 42% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/sdb1 100G 60G 35G 64% /data 从上面的输出中,我们可以看到每个文件系统的总大小、已用空间、可用空间、使用百分比以及挂载点
这对于快速识别哪个文件系统接近满载非常有用
2.`du`命令:深入目录和文件级别 与`df`不同,`du`命令允许用户深入查看特定目录或文件的磁盘使用情况
它递归地计算目录和文件的磁盘空间占用
使用`du -h --max-depth=1`可以查看当前目录下每个子目录和文件的占用情况,`--max-depth=1`限制递归深度为1层
du -h --max-depth=1 输出示例: 4.0K ./.hidden 2.5G ./videos 1.2G ./documents 16K ./temp 5.0G ./music 20G . 这里,`du`命令列出了当前目录下每个一级子目录和文件的占用大小,以及当前目录的总占用大小
二、高级用法:结合其他命令进行更精细的分析 虽然`du`和`df`已经提供了强大的功能,但结合其他命令可以进一步细化分析,提高存储管理的效率
1. 排序与筛选:结合`sort`和`grep` 为了找到占用空间最大的文件或目录,可以将`du`的输出通过管道传递给`sort`命令进行排序,或者使用`grep`进行筛选
例如,要找出当前目录及其子目录下占用空间最大的10个文件或目录,可以使用以下命令: du -ah . | sort -rh | head -n