Linux find 命令完全指南
find 是 Linux 系统最强大的文件搜索工具,支持 嵌套遍历、条件筛选、执行动作。以下通过场景分类解析核心用法,涵盖高效搜索、文件管理及高级技巧:
一、基础搜索模式
1. 按文件名搜索(精确/模糊匹配)
<BASH>
find /path -name "*.log" # 精确匹配 .log 后缀(区分大小写)
find /home -iname "*.TXT" # 模糊匹配 .txt 后缀(忽略大小写)
find . -name "data_[0-9].csv" # 使用通配符 [] ? * 匹配
2. 排除指定目录/文件
<BASH>
find /var/log -path "/var/log/nginx" -prune -o -name "*.log" # 排除 nginx 目录
find . -not -name "*.tmp" # 排除所有 .tmp 文件
二、根据文件类型筛选
使用 -type 筛选文件类型:
f: 常规文件d: 目录l: 符号链接s: 套接字p: 命名管道
<BASH>
find /opt -type d -name "config" # 搜索名为 config 的目录
find ~/ -type f -empty # 查找当前用户下空文件
find /tmp -type l -ls # 列出 /tmp 下所有符号链接详细信息
三、时间维度搜索
按时间筛选(文件修改时间 -mtime / 访问时间 -atime):
+n: n 天前-n: 最近 n 天内n: 正好 n 天前
<BASH>
find . -mtime -7 # 查找过去 7 天内修改过的文件
find /var/log -mtime +30 -name "*.log" # 搜索 30 天前的日志文件
按分钟级精准控制(-mmin):
<BASH>
find /tmp -mmin -10 # 查找过去 10 分钟内修改的文件
四、文件大小搜索
使用 -size (单位:c=字节, k=KB, M=MB, G=GB):
+n: 大于 n-n: 小于 nn: 等于 n
<BASH>
find / -size +100M # 全局搜索大于 100MB 的文件(慎用根目录)
find ~/Downloads -size -5k # 查找 Downloads 中小于 5KB 的文件
五、权限与所有权过滤
1. 按权限位搜索(数字或符号模式)
<BASH>
find . -perm 644 # 精确匹配权限为 644 的文件
find /etc -perm -u=r # 用户可读的文件(权限包含 r)
find /bin -perm /u=s # 包含 SUID 的文件
2. 按用户/组筛选
<BASH>
find /var -user www-data # 属于 www-data 用户的文件
find /home -group dev # 属于 dev 组的文件
六、组合条件与逻辑操作
-a(-and): 逻辑与(默认)-o(-or) : 逻辑或!(-not) : 逻辑非- 使用
()分组(需转义)
<BASH>
find /data \( -name "*.jpg" -o -name "*.png" \) -size +2M # 查找 JPG 或 PNG 且大于 2MB
find . -type f ! -name "*.tmp" # 排除所有 .tmp 文件
七、执行后续动作(-exec 与 xargs)
1. 直接执行命令(-exec)
<BASH>
find . -name "*.bak" -exec rm -f {} \; # 删除所有 .bak 文件(确认无误后执行)
find /var/log -type f -mtime +30 -exec gzip {} \; # 压缩 30 天前的日志文件
2. 结合 xargs 提高效率
<BASH>
find /tmp -name "core.*" -print0 | xargs -0 rm -f # 安全处理含空格文件名
3. 删除文件(内建动作)
<BASH>
find . -type f -name "*.tmp" -delete # 直接删除(-delete 必须放在最后)
八、高级搜索场景
1. 查找占用 inode 的小文件
<BASH>
find /path -type f -size +0c -links 1 -exec ls -i {} \; # 非硬链接的独立文件
2. 查找重复文件(根据 MD5)
<BASH>
find . -type f -exec md5sum {} + | sort | uniq -w32 -dD # 生成校验和对比重复项
九、安全排查技巧
1. 搜索可疑 SUID/SGID 文件
<BASH>
find / -perm /4000 -user root 2>/dev/null # SUID 且属主为 root
find / -perm /2000 -group root 2>/dev/null # SGID 且属组为 root
2. 查找全局可写文件
<BASH>
find / -xdev -type f -perm -0002 ! -perm -1000 # 忽略粘滞位目录下的文件
十、性能优化建议
- 限定搜索深度:
-maxdepth和-mindepth<BASH>
find /var/log -maxdepth 2 -name "*.log" # 仅搜索两层目录 - 跳过特定文件系统:
-xdev(不跨文件系统)<BASH>
find / -xdev -name "lost+found" # 仅在当前文件系统搜索
总结
- 核心模式:
find [路径] [条件] [动作],灵活组合条件实现精准搜索。 - 安全第一:执行删除或修改前,建议先用
-print或-ls确认目标文件。 - 效率优先:在高负载场景下,尽量减少全盘扫描,合理使用
-xargs提升性能。
相关文章:
Linux find 命令完全指南
find 是 Linux 系统最强大的文件搜索工具,支持 嵌套遍历、条件筛选、执行动作。以下通过场景分类解析核心用法,涵盖高效搜索、文件管理及高级技巧: 一、基础搜索模式 1. 按文件名搜索(精确/模糊匹配) <BASH> f…...
市场波动中的风险管理与策略优化
市场波动中的风险管理与策略优化 在市场交易中,价格的波动性为投资者提供了交易机会,但同时也带来了风险。如何在市场不确定性中进行有效的风险管理,并优化交易策略,是每位交易者都需要思考的问题。本文将探讨市场波动的影响因素、…...
(链表)206. 反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3: 输入&am…...
Jetson Orin NX jupyter lab的安装和使用
主要是为了梳理一下整个过程,其实步骤很简单,但容易出错。 注意,实际只有两个文件需要写入,一个是jupyter_lab_config.py,一个是jupyter.service。 配置文件的名字要写对,如果总是copy网上的代码࿰…...
前端npm包- CropperJS
文章目录 一、CropperJS**核心特性****官网与文档****安装与使用**1. **通过 npm/yarn/pnpm 安装**2. **HTML 结构**3. **引入 CSS 和 JS**4. **初始化裁剪器** **相关插件/替代方案****适用场景****注意事项** 总结 一、CropperJS cropperjs 是一个轻量级、功能强大的 图片裁…...
农业建设项目管理系统评测:8款推荐工具优缺点分析
本文主要介绍了以下8款农业建设项目管理系统:1.PingCode; 2. Worktile ;3. 建米农业工程项目管理系统;4. 开创云数字农业管理平台; 5. Trimble Ag Software;6.Conservis; 7. Agworld ࿱…...
linux 命令 tail
tail 是 Linux 中用于查看文件末尾内容的命令,常用于日志监控和大文件快速浏览。以下是其核心用法及常见选项: 基本语法 tail [选项] 文件名 常用选项 显示末尾行数 -n <行数> 或 --lines<行数> 指定显示文件的最后若干行(…...
测试开发 - 正浩创新 - 一面面经(已OC)
自我介绍 实习过程中,有遇到过什么问题,是如何解决的 实习成果中的数据指标变化,人力消耗一直在递减,是什么原因 实习工作有很多模块,那一块工作对你的提升或者收获是比较大的 讲一下,简历中所罗列的几…...
实验8 搜索技术
实验8 搜索技术 一、实验目的 (1)掌握搜索技术的相关理论,能根据实际情况选取合适的搜索方法; (2)进一步熟悉盲目搜索技术,掌握其在搜索过程中的优缺点; (3)…...
VSTO(C#)Excel开发9:处理格式和字体
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
LinkedList底层结构和源码分析(JDK1.8)
参考视频:韩顺平Java集合 特点 LinkedList 底层实现了 双向链表 和 双端队列 的特点。可以添加任意元素(元素可以重复),包括 null。线程不安全,没有实现同步。 LinkedList 底层结构 LinkedList 底层维护了一个双向链…...
数字内容体验的技术支柱是什么?
数据分析引擎构建基础 数字内容体验的技术底座始于对海量用户行为数据的深度解析。作为技术体系的根基,数据分析引擎通过实时采集、清洗与结构化处理,将分散的点击轨迹、停留时长及交互偏好转化为可操作的洞察。其核心能力体现在三方面:一是…...
C# 使用Markdown2Pdf把md文件转换为pdf文件
NuGet安装Markdown2Pdf库,可以把格式简单markdown文件转换为pdf。但该库用了Puppeteer Sharp,因此会在运行过程中提示指定Chrome浏览器路径或自动下载Chrome浏览器。 代码如下: using Markdown2Pdf;var converter new Markdown2PdfConverte…...
专家系统如何运用谓词逻辑进行更复杂的推理
前文,我们讲解了命题逻辑和谓词逻辑的基本概念、推理规则、应用以及一些简单的示例。具体内容可以先看我的文章:人工智能的数学基础之命题逻辑与谓词逻辑(含示例)-CSDN博客 那么形如专家系统这类复杂系统,是如何通过谓…...
html css网页制作成品——糖果屋网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Ubuntu上部署Flask+MySQL项目
一、服务器安装python环境 1、安装gcc(Ubuntu默认已安装) 2、安装python源码 wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz 3、安装Python依赖库 4、配置python豆瓣源 二、服务器安装虚拟环境 1、安装virtualenv pip3.10 ins…...
落雪音乐Pro 8.8.6 | 内置8条音源,无需手动导入,纯净无广告
洛雪音乐Pro版内置多组稳定音源接口,省去手动导入的繁琐操作,安装即可畅听海量音乐。延续原版无广告的纯净体验,支持歌单推荐与音源切换,满足个性化听歌需求。此版本仅支持在线播放,无法下载音乐,且与原版不…...
什么是全栈?
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点下班 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 📃文章前言 🔷文章均为学习工…...
一些docker命令
一、基础命令 查看 Docker 版本 docker --version 或 docker version:显示 Docker 客户端和服务器的版本信息。 查看 Docker 系统信息 docker info:显示 Docker 系统的详细信息,包括镜像、容器数量、存储驱动类型等。 Docker 服务管理 s…...
《DeepSeek 开源 DeepGEMM:开启AI计算新时代的密钥》:此文为AI自动生成
《DeepSeek 开源 DeepGEMM:开启AI计算新时代的密钥》:此文为AI自动生成 引言:AI 计算的新曙光 在当今科技飞速发展的时代,人工智能(AI)无疑是最为耀眼的领域之一。从语音助手到自动驾驶,从图像…...
OpenCV实现图像特征提取与匹配
一、特征检测与描述子提取 选择特征检测器 常用算法包括: ORB:一种高效的替代SIFT和SURF的算法,主要用于移动机器人和增强现实等领域。适合实时应用,结合FAST关键点与BRIEF描述子。SIFT(尺度不变特征变…...
将分支`XXX`合并到远程分支`master
将分支feat-task合并到远程分支master 首先,切换到本地的 master 分支 git checkout master确保你的本地 master 分支是最新的,拉取远程的更新 git pull origin master将 feat-task 分支的代码合并到 master 分支 git merge feat-task如果在合并过程…...
程序化广告行业(13/89):DSP的深入解析与运营要点
程序化广告行业(13/89):DSP的深入解析与运营要点 大家好!一直以来,我都对程序化广告行业保持着浓厚的学习兴趣,在探索的过程中积累了不少心得。今天就想把这些知识分享出来,和大家一起学习进步…...
XML文件格式的简介及如何用Python3处理XML格式对象
诸神缄默不语-个人技术博文与视频目录 文章目录 1. XML格式简介2. 格式化XML文件的工具3. Python处理XML:xml库1. xml.etree.\(c\)ElementTree2. xml.dom.minidom 4. 本文撰写过程中参考的其他网络资料 1. XML格式简介 可扩展标记语言 (Extensible Markup Language…...
通过qemu仿真树莓派系统调试IoT固件和程序
通过qemu仿真树莓派系统调试IoT固件和程序 本文将介绍如何使用 QEMU 模拟器在 x86 架构的主机上运行 Raspberry Pi OS(树莓派操作系统)。我们将从下载镜像、提取内核和设备树文件,到启动模拟环境,并进行一些常见的操作࿰…...
Oracle底层原理解析
Oracle 解析 1、union \ union all \ Intersect \ Minus内部处理机制(优化) 当查询语句中的where子句中使用到or时,可以用union all来代替。因为使用or查询语句的时候,引起全表扫描,并走索引查询 特别:当…...
深度解读DeepSeek部署使用安全(48页PPT)(文末有下载方式)
深度解读DeepSeek:部署、使用与安全 详细资料请看本解读文章的最后内容。 引言 DeepSeek作为一款先进的人工智能模型,其部署、使用与安全性是用户最为关注的三大核心问题。本文将从本地化部署、使用方法与技巧、以及安全性三个方面,对Deep…...
【前端三剑客】万字总结JavaScript
一、初识JavaScript 1.1 JavaScript 的作用 表单动态校验(密码强度检测) ( JS 产生最初的目的 )网页特效服务端开发(Node.js)桌面程序(Electron)App(Cordova)控制硬件-物联网(Ruff)游戏开发(cocos2d-js) 1.2 HTML/CSS/JS 的关系…...
【哈希表与字符串的算法之路:思路与实现】—— LeetCode
文章目录 两数之和面试题01.02.判定是否为字符重排存在重复元素存在重复元素||字母异位词分组最长公共前缀和最长回文子串二进制求和字符串相乘 两数之和 这题的思路很简单,在读完题目之后,便可以想到暴力枚举,直接遍历整个数组两遍即可&…...
基于Android的记事本APP设计与实现:从需求分析到功能实现(超级简单记事本,附源码+文档报告)
基于Android的记事本APP设计与实现:从需求分析到功能实现 (以前大学课堂作业,抄在这里当个回忆吧) 引言 随着社会的不断进步,信息化建设不断发展,电子文字输入在生活、学习、工作中占有越来越重要的作用…...
