find是 Linux 系统最强大的文件搜索工具支持嵌套遍历、条件筛选、执行动作。以下通过场景分类解析核心用法涵盖高效搜索、文件管理及高级技巧一、基础搜索模式1. 按文件名搜索精确/模糊匹配BASH123find/path-name*.log# 精确匹配 .log 后缀区分大小写find/home-iname*.TXT# 模糊匹配 .txt 后缀忽略大小写find. -namedata_[0-9].csv# 使用通配符 [] ? * 匹配2. 排除指定目录/文件12find/var/log-path/var/log/nginx-prune -o -name*.log# 排除 nginx 目录find. -not -name*.tmp# 排除所有 .tmp 文件二、根据文件类型筛选使用-type筛选文件类型f: 常规文件d: 目录l: 符号链接s: 套接字p: 命名管道123find/opt-typed -nameconfig# 搜索名为 config 的目录find~/ -typef -empty# 查找当前用户下空文件find/tmp-typel -ls# 列出 /tmp 下所有符号链接详细信息三、时间维度搜索按时间筛选文件修改时间-mtime/ 访问时间-atimen: n 天前-n: 最近 n 天内n: 正好 n 天前12find. -mtime -7# 查找过去 7 天内修改过的文件find/var/log-mtime 30 -name*.log# 搜索 30 天前的日志文件按分钟级精准控制-mmin1find/tmp-mmin -10# 查找过去 10 分钟内修改的文件四、文件大小搜索使用-size单位c字节,kKB,MMB,GGBn: 大于 n-n: 小于 nn: 等于 n12find/ -size 100M# 全局搜索大于 100MB 的文件慎用根目录find~/Downloads-size -5k# 查找 Downloads 中小于 5KB 的文件五、权限与所有权过滤1. 按权限位搜索数字或符号模式123find. -perm 644# 精确匹配权限为 644 的文件find/etc-perm -ur# 用户可读的文件权限包含 rfind/bin-perm/us# 包含 SUID 的文件2. 按用户/组筛选12find/var-user www-data# 属于 www-data 用户的文件find/home-group dev# 属于 dev 组的文件六、组合条件与逻辑操作-a(-and): 逻辑与默认-o(-or) : 逻辑或!(-not) : 逻辑非使用()分组需转义12find/data\( -name*.jpg-o -name*.png\) -size 2M# 查找 JPG 或 PNG 且大于 2MBfind. -typef ! -name*.tmp# 排除所有 .tmp 文件七、执行后续动作-exec 与 xargs1. 直接执行命令-exec12find. -name*.bak-execrm-f {} \;# 删除所有 .bak 文件确认无误后执行find/var/log-typef -mtime 30 -execgzip{} \;# 压缩 30 天前的日志文件2. 结合xargs提高效率1find/tmp-namecore.*-print0 |xargs-0rm-f# 安全处理含空格文件名3. 删除文件内建动作1find. -typef -name*.tmp-delete# 直接删除-delete 必须放在最后八、高级搜索场景1. 查找占用 inode 的小文件1find/path-typef -size 0c -links 1 -execls-i {} \;# 非硬链接的独立文件2. 查找重复文件根据 MD51find. -typef -execmd5sum {} |sort|uniq-w32 -dD# 生成校验和对比重复项九、安全排查技巧1. 搜索可疑 SUID/SGID 文件12find/ -perm/4000-user root 2/dev/null# SUID 且属主为 rootfind/ -perm/2000-group root 2/dev/null# SGID 且属组为 root2. 查找全局可写文件1find/ -xdev -typef -perm -0002 ! -perm -1000# 忽略粘滞位目录下的文件十、性能优化建议限定搜索深度-maxdepth和-mindepth1find/var/log-maxdepth 2 -name*.log# 仅搜索两层目录跳过特定文件系统-xdev不跨文件系统1find/ -xdev -namelostfound# 仅在当前文件系统搜索总结核心模式find [路径] [条件] [动作]灵活组合条件实现精准搜索。安全第一执行删除或修改前建议先用-print或-ls确认目标文件。效率优先在高负载场景下尽量减少全盘扫描合理使用-xargs提升性能。