Linux中无Find-Size-10M命令,实际需用find -size +9M -size -11M等组合精准查找约10MB的日志文件,并配合-type f、-name "*.log"及排除压缩包等条件限定范围,再通过ls -lh、head等安全查看,确认后归档或truncate清理。

Linux 中没有内置命令叫 Find-Size-10M,这可能是对 find 命令的误记或简化说法。实际操作中,需用标准 find 配合大小条件(如 -size)来搜索 10MB 左右的日志文件碎片,并结合后续动作(如查看、归档、清理)进行处理。
准确匹配 10MB 左右的日志文件
find 的 -size 参数支持多种单位和比较逻辑,注意:默认单位是 512 字节块(不是字节),且 +10M 表示“大于 10MB”,-10M 表示“小于 10MB”。要找“约 10MB”的文件(比如 9–11MB),推荐用范围判断:
- 查找大小在 9MB 到 11MB 之间的普通文件:
find /var/log -type f -size +9M -size -11M 2>/dev/null - 若想以字节为单位更精确(避免块单位偏差),可用:
find /var/log -type f -size +9437184c -size -11534336c 2>/dev/null
(9MB = 9 × 1024 × 1024 = 9437184 字节)
限定日志类文件,避免误伤
直接搜整个 /var/log 可能命中压缩包、临时锁文件等非目标对象。建议加后缀或命名特征过滤:
- 只查常见日志扩展名:
find /var/log -type f \( -name "*.log" -o -name "messages" -o -name "syslog" \) -size +9M -size -11M 2>/dev/null - 排除已压缩的老日志(如 .gz/.xz):
find /var/log -type f ! \( -name "*.gz" -o -name "*.xz" -o -name "*.bz2" \) -name "*.log" -size +9M -size -11M 2>/dev/null
安全查看与分类处理碎片文件
找到文件后,不建议直接删除。先确认内容、归属和轮转状态:
- 快速查看头部和大小:
find /var/log -type f -name "*.log" -size +9M -size -11M -exec ls -lh {} \; -exec head -n 3 {} \; -exec echo "---" \; - 按服务归类(例如 nginx、docker 日志):
find /var/log -type f -size +9M -size -11M | xargs dirname | sort | uniq -c - 标记为待归档(重命名加
.pending):find /var/log -type f -name "*.log" -size +9M -size -11M -exec mv {} {}.pending \;
自动化清理前的必要检查
日志“碎片”常源于未配置 logrotate 或应用自身切分异常。执行清理前务必:
- 确认对应服务是否仍在运行(
systemctl status xxx或ps aux | grep xxx) - 检查该日志是否被
logrotate管理(grep -r "your-log-path" /etc/logrotate.d/) - 避免删除正在写入的文件(可用
lsof +L1或lsof | grep deleted辅助判断) - 真正清理时,优先用
truncate -s 0 file清空而非rm,可保留文件句柄不中断服务
核心是把“Find-Size-10M”理解为一个目标描述,而非真实命令。用好 find -size、限定路径与类型、结合业务上下文判断,才能稳妥定位并处置那些卡在中间尺寸的日志碎片。











