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

5次阅读

答案:linux下按大小筛选文件主要用 find、ls 和 du 命令。find 支持按大小(+ 大于、- 小于、= 等于)和单位(c/k/M/G)精确查找,如 find /path -type f -size +100M 找大于 100MB 的文件;ls 结合 - S 排序和 head/tai l 快速查看最大或最小文件,如 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 显示详细信息便于确认大小。

用 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-12发表,共计1352字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources