Linux 怎么按大小筛选文件?常见命令总结

24次阅读

答案:Linux 下按大小筛选文件主要用 find、ls 和 du 命令。find 支持按大小(+ 大于、- 小于、= 等于)和单位(c/k/M/G)精确查找,如 find /path -type f -size +100M 找大于 100MB 的文件;ls 结合 - S 排序和 head/tail 快速查看最大或最小文件,如 ls -lS | head -n 6 显示最大的 5 个;du 配合 sort 识别大目录或文件,如 du -sh */ | sort -hr 列出子目录大小降序;注意 find 的 -size 以块为单位可能向上取整,权限问题可加 2 >/dev/null 屏蔽错误。

Linux 怎么按大小筛选文件?常见命令总结

Linux 下按大小筛选文件,主要靠 findls 两个命令配合条件参数实现,核心是理解大小单位写法和比较逻辑(比如 +10M 表示“大于 10MB”,-10M 表示“小于 10MB”)。

用 find 按大小精确查找文件

find 是最常用、最灵活的方式,支持按 字节、KB、MB、GB 等单位筛选,还能组合其他条件(如类型、时间等)。

  • 查找大于 100MB 的普通文件find /path -type f -size +100M
  • 查找小于 1KB 的文件find /path -type f -size -1k
  • 查找大小正好等于 512 字节的文件find /path -type f -size 512cc 表示字节)
  • 查找大于 10MB 且最近 7 天修改过的文件find /path -type f -size +10M -mtime -7

注意:+ 表示“大于”,- 表示“小于”,不加符号表示“等于”;单位后缀常用 c(字节)、k(KB)、M(MB)、G(GB),大小写敏感(m 不合法,必须是 M)。

用 ls 列出并按大小排序查看

ls 本身不筛选,但能按大小排序 + 配合 head/tail 快速定位最大 / 最小的几个文件,适合快速浏览。

  • 按大小降序列出当前目录所有文件(最大在前)ls -lS
  • 只看最大的 5 个文件ls -lS | head -n 6head -n 6 是因为第一行是总用量)
  • 只看最小的 3 个普通文件(排除目录)ls -lSr | grep '^-' | head -n 3

提示:-S 按大小排序,-r 表示反向(升序),-l 显示详细信息便于确认大小。

Linux 怎么按大小筛选文件?常见命令总结

Genesis

开源的生成式物理引擎,可模拟世界万物。

Linux 怎么按大小筛选文件?常见命令总结 144

查看详情 Linux 怎么按大小筛选文件?常见命令总结

用 du + sort 快速找大目录或大文件

du 统计磁盘使用量,配合 sort 可快速识别占用空间最多的目录或文件,适合排查磁盘满的问题。

  • 列出当前目录下各子目录大小(降序)du -sh */ | sort -hr
  • 找出整个系统中最大的 10 个文件(含子目录)find / -type f -exec du -h {} + 2>/dev/null | sort -hr | head -n 10

说明:-h 输出人类可读格式(如 2.4G),sort -hr 按人类可读数字逆序排序;2>/dev/null 屏蔽权限错误提示。

小技巧:避免常见坑

实际使用时容易踩几个小坑,提前注意能省不少时间:

  • find 的 -size 单位是“向上取整块”:比如一个 1025 字节的文件,-size +1k 会匹配(因为 1k=1024 字节,它占用了 2 块),但 -size +1024c 就不会(严格按字节数比)
  • 路径权限不足会报错:加 2>/dev/null 或先用 sudo(如需查系统目录)
  • ls -S 对硬链接或特殊文件可能不准:它按 st_size 字段排序,而 du 才反映真实磁盘占用

基本上就这些。按大小筛选文件不复杂,关键是记清 find 的单位语法和比较符号含义,再根据场景选对命令组合。

星耀云
版权声明:本站原创文章,由 星耀云 2025-12-06发表,共计1385字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources