要快速定位linux中的大文件,可结合find与sort。1.用find /path -type f -size +100m筛选指定大小文件;2.通过find /path -exec ls -l {} \\;|sort -nrk5按大小排序输出;3.用du -ah|sort -rh|head查看目录整体占用;4.使用ls -lhs直接列出当前目录大文件。这些方法提升排查效率。

在Linux系统中,快速定位大文件是运维和日常管理中的一个常见需求。find 和 sort 是两个非常实用的命令行工具,它们结合使用可以高效地找出占用空间较大的文件。以下是几个关键技巧,帮助你快速完成这一任务。

1. 使用 find 查找指定大小的文件
find 命令可以根据文件大小筛选出符合条件的文件。例如,如果你想找大于100MB的文件,可以使用如下命令:

find /path/to/search -type f -size +100M
-
/path/to/search是你要搜索的目录路径。 -
-type f表示只查找文件(排除目录)。 -
-size +100M表示查找大于100MB的文件。
你可以根据需要调整大小单位:
-
+1G表示大于1GB的文件。 -
+50k表示大于50KB的文件。
这样能快速缩小范围,避免列出所有文件后再排序。

2. 将 find 结果结合 sort 排序输出
如果希望看到按大小排列的文件列表,可以将 find 的结果通过管道传递给 sort 进行排序。比如:
find /path/to/search -type f -exec ls -l {} \; | sort -nk 5-
-exec ls -l {} \;会为每个找到的文件执行ls -l,显示详细信息。 -
sort -nk 5按照第5列(即文件大小)进行数值排序。
如果你更喜欢从大到小排列,可以加上 -r 参数:
find /path/to/search -type f -exec ls -l {} \; | sort -nrk 5这样就能清晰地看到哪些文件最大。
3. 使用 du 结合 sort 快速查看目录下大文件
如果你想先了解某个目录中哪些子目录或文件占用了最多空间,可以使用 du 命令配合 sort:
du -ah /path/to/search | sort -rh | head -n 20
-
du -ah显示所有文件和目录的大小,并以人类可读的方式呈现(如 KB、MB)。 -
sort -rh按大小逆序排列。 -
head -n 20只显示前20条结果,便于快速浏览。
这个方法适合快速了解整体磁盘占用情况,尤其适用于排查日志或缓存目录中的异常大文件。
4. 更简洁:直接用 ls 排序查看当前目录下的大文件
如果你只需要查看当前目录下的大文件,可以直接使用 ls 命令:
ls -lhS
-
-l显示详细信息。 -
-h使文件大小以易读格式显示。 -
-S按文件大小排序。
要递归查看子目录中的文件并排序:
ls -lRhS
虽然不如 find 灵活,但在简单场景下足够高效。
总的来说,find 提供了强大的过滤能力,而 sort 则让结果更易于分析。两者结合,能够让你快速定位系统中的“大块头”文件,从而做出相应处理。基本上就这些,不复杂但容易忽略。










