如何查找占用磁盘空间的大文件?
1. 问题的场景
“磁盘空间不足!”是 Linux 用户经常会遇到的警告。通常,这都是由一些被遗忘的日志、备份或者下载文件引起的。手动查找这些“磁盘巨兽”非常低效,但我们可以用几个命令组合来快速定位它们。
2. 核心命令介绍
du(disk usage): 用于估算文件和目录的磁盘使用空间。-h参数使其以易于阅读的格式显示 (e.g., K, M, G)。-s参数表示只显示总计大小。
sort: 用于对文本行进行排序。-r参数表示反向排序(从大到小)。-h参数使其能理解易读格式的数字 (e.g., 1G > 10M)。
head: 用于显示文件的前几行。
3. 实战操作:定位 Top 10 大文件/目录
这是一个非常强大且常用的“一行禅”命令,让我们在当前目录下查找最大的10个文件或目录:
du -h | sort -rh | head -n 10
命令解析:
du -h: 计算当前目录下所有文件和子目录的大小,并以 K/M/G 的形式显示。|(管道符): 将前一个命令的输出,作为后一个命令的输入。sort -rh: 接收du的输出,并按照大小从高到低进行排序。head -n 10: 接收排序后的结果,并只显示前10行,也就是最大的10个。
4. 进阶:使用 find 命令
如果你想在更复杂的条件下查找,比如“查找/home目录下所有大于100M的.log文件”,find 命令就派上用场了。
find /home -type f -name "*.log" -size +100M -exec ls -lh {} \;
命令解析:
find /home: 在/home目录下查找。-type f: 只查找文件。-name "*.log": 文件名以.log结尾。-size +100M: 文件大小超过 100MB。-exec ls -lh {} \;: 对找到的每一个文件 ({}),都执行ls -lh命令来显示其详细信息。
掌握这些命令组合,你就能成为一名高效的磁盘空间管理员!