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

1次阅读

答案: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 怎么按大小筛选文件?常见命令总结

讯飞智文

一键生成PPT和Word,让学习生活更轻松。

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

查看详情 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 的单位语法和比较符号含义,再根据场景选对命令组合。

text=ZqhQzanResources