用 find -print 和 -depth 可快速定位卡顿目录,输出中断处即可疑点;结合 -maxdepth 逐级排查、-prune 或 -xdev 排除干扰,辅以 strace 分析系统调用阻塞。

直接用 find 加 -print 和 -depth 配合调试,能快速暴露卡点所在目录。
加 -print 实时看路径输出
在命令末尾加上 -print(或默认行为),让 find 边遍历边打印路径。一旦输出突然中断、停在某个路径上超过几秒,那个目录就是可疑对象。
- 例如:
find /var -name "*.log" -print - 如果卡在
/var/log/journal/或/var/lib/docker/这类大目录,基本可以确认是它 - 注意:某些挂载点(如 NFS、CIFS)或权限受限目录(如
/proc、/sys子目录)也可能导致阻塞
用 -maxdepth 逐级缩小范围
先限制深度为 1,确认顶层目录是否正常;再逐步加深,定位到哪一级开始变慢。
-
find /path -maxdepth 1 -print | wc -l—— 快速统计一级子项数量 -
find /path -maxdepth 2 -name "xxx"—— 若这步就卡,说明问题出在某二级子目录 - 配合
ls -lF /path观察是否有异常符号链接、设备文件或挂载点
跳过可疑类型目录
用 -prune 主动排除常见“拖后腿”的目录,验证是否恢复流畅。
find /path \( -path "/path/proc" -o -path "/path/sys" -o -path "/path/dev" \) -prune -o -name "*.conf" -print- 也可跳过所有挂载点:
find /path -xdev -name "*.log"(-xdev不跨文件系统) - 遇到权限拒绝提示(Permission denied)较多的目录,也建议先
2>/dev/null屏蔽 stderr 再观察是否还卡
用 strace 看底层卡在哪
对极端情况,可附加 strace 查看系统调用阻塞点。
strace -e trace=opendir,readdir,stat,openat find /path -name "xxx" 2>&1 | grep -E "(EACCES|ENOTDIR|ETIMEDOUT|NFS)"- 若看到大量
readdir调用后长时间无返回,大概率是某个目录内容极多或底层存储响应慢(如老旧 NAS、损坏磁盘) - 注意:strace 本身有开销,仅用于诊断,不用于日常查找










