08_Linux文件查找技巧:locate、find 和 grep 命令详解
系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客
文章目录
- 1. `locate`命令
- 2. `grep`命令
- 3. `find`命令
在Linux系统中,文件查找是一项常见的任务。本文将详细介绍三种强大的文件查找命令:locate
、find
和 grep
,以及它们的使用场景和参数。
1. locate
命令
locate
命令的功能是用于快速查找文件或目录。与find命令进行全局搜索不同,locate命令是基于了数据文件(/var/lib/mlocate/mlocate.db) 进行的定点查找,由于缩小了搜索范围,因此快速快很多。
Linux系统需定期执行下updatedb命令对数据库文件进行更新,然后再使用locate命令进行查找,这样才会更加准确。
优点:基于数据库查询,效率非常高
缺点:查询时要确保数据库是最新的,否则查找可能不正确
第一安装时,updatedb更新生成数据文件 /var/lib/mlocate/mlocate.db
/etc/cron.daily/mlocate.cron --根据任务计划每天刷新数据库
注意:/tmp目录不做为updatedb数据库记录范围
安装与更新:
yum install -y mlocate
updatedb
语法格式:
locate [参数] 文件名
常用参数:
-b
仅匹配文件名-c
不输出文件名-d
设置数据库所在目录-i
忽略大小写-l
限制最大查找数量-q
静默执行模式-r
使用正则表达式-S
显示数据库的统计信息-w
匹配完整的文件路径--help
显示帮助信息--version
显示版本信息
示例:
搜索带有指定关键词的文件:
[root@lianghui ~]# updatedb
[root@lianghui ~]# locate network
/dev/network_latency
/dev/network_throughput
………………省略部分输出信息………………
在指定的目录下,搜索带有指定关键词的文件:
[root@lianghui ~]# locate /etc/network
/etc/networks
locate “lesson” ----查找文件包含 lesson字符串的
# locate -r 'lessonoo.*' ( -r参数支持用正则通配符)
# locate -r "^/var/log" --- '^' 以xx开头 ,查找 以 /var/log开头的所有内容
# locate -r '\.iso$' 找以'.iso'结尾的文件 在正则‘.’表示任意一个字符,‘\’ 转义为 普通的 '.' 字符
2. grep
命令
grep
命令用于搜索文件中的文本模式。它支持正则表达式,可以根据用户的需求灵活地进行搜索。与之容易混淆的是egrep
命令和fgrep
命令。如果把grep
命令当作是标准搜索命令,那么egrep
则是扩展搜索命令,等价于grep -E
命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于grep -F
命令,不支持正则表达式,直接按照字符串内容进行匹配。
语法格式:
grep [参数] 文件名
常用参数:
-b
显示匹配行距文件头部的偏移量-c
只显示匹配的行数-E
支持扩展正则表达式-F
匹配固定字符串的内容-h
搜索多文件时不显示文件名-i
忽略关键词大小写-l
只显示符合匹配条件的文件名-n
显示所有匹配行及其行号-o
显示匹配词距文件头部的偏移量-q
静默执行模式-r
递归搜索模式-s
不显示没有匹配文本的错误信息-v
反选,显示不包含匹配文本的所有行-w
精准匹配整词-x
精准匹配整行
示例:
grep "root" /etc/passwd # 在passwd文件中过滤包含关键字"root"的行
grep -i "root" /etc/passwd # 忽略大小写匹配关键字"root"
grep -n -i "root" /etc/passwd # 忽略大小写匹配关键字"root"并显示行号
grep -v "root" /etc/passwd # 反选,仅显示不包含关键字"root"的行
grep -v '^$' /etc/passwd # 过滤空行
grep '^root' /etc/passwd # 过滤以"root"开头的行
grep 'bash$' /etc/passwd # 过滤以"bash"结尾的行
grep -w "^root" /etc/passwd # 精确匹配以"root"开头的行
grep -vE "^#|^$" /etc/ssh/sshd_config # 过滤掉以"#"开头或空行的内容
grep -Rl "pthread_create" /usr/include/ # 在/usr/include目录下查找包含"pthread_create"的文件
grep -Rn "hello" /usr/share/ # 在/usr/share目录下查找包含"hello"的文件,并显示行号
3. find
命令
find
命令用于在指定目录下查找文件和目录。它可以根据文件名、大小、类型、权限等多种条件进行查找。
优点:真实磁盘扫描查找,查找方式丰富,支持衔接其他指令对查找到内容进而做其他操作。
缺点:慢,效率低
语法:
find 查找的路径 -查找的方式(name size type perm user group newer)
常用查找方式:
-
name:按照文件名查找文件
find / -name "*.jpg"
:在根目录下查找以.jpg结尾的文件find / ! -name "*.jpg"
:在根目录下查找不是以.jpg结尾的文件find / -name "*.jpg" -o -name "*.gif"
:在根目录下查找以.jpg或.gif结尾的文件find / -regex "ab[0-9]$"
:使用正则表达式匹配查找以ab开头后面跟一个数字结尾的文件
-
size:按照文件大小查找(常用单位c k M G)
find / -size 655k
:在根目录下查找大小约为655k的文件find / -size -655k
:在根目录下查找小于655k的文件find / -size +655k
:在根目录下查找大于655k的文件find / -size +655k -size -6550k
:在根目录下查找大小大于655k但小于6550k的文件
-
user:按照文件属主来查找文件
find / -user it01
-
group:按照文件所属组来查找文件
find / -group itgrp
-
type:按照文件类型查找(f d l s p c b)
find /dev/ -type b
:查找块设备文件find /dev/ -type c
:查找字符设备文件find /tmp -type f
:查找普通文件find /tmp -type d
:查找目录文件
-
perm:按照文件权限来查找文件
find / -perm 0700
:查找权限等于0700的文件find / -perm 01777
:查找权限等于01777的文件,例如tmp目录find / -perm u=rwx
:查找用户权限为rwx的文件find / -perm /u=r
:查找用户权限包含’r’的文件,不管其他权限find /usr/ -perm /u=s
:查找用户包含s权限(冒险位的)的文件
-
newer file1:查找更改时间比文件file1新但比文件file2旧的文件
find /home/ -newer /home/a_f_8
:查找比/home/a_f_8新的文件find /home/ ! -newer /home/a_f_8
:查找比/home/a_f_8老的文件
-
mtime/atime/ctime:根据时间查找
find / -mtime 7
:查找文件修改时间为7天的文件(刚好等于7天)find / -mtime -7
:查找文件修改时间小于7天的文件find / -mtime +7
:查找文件修改时间大于7天的文件find /home/ -mtime 0
:查找今天修改的文件
-
-mount:指定只查找挂载的文件系统
find / -mount -size +10M
动作行为:
-
-ls:将查找的内容显示属性信息
find / -name "*.jpg" -ls
:显示查找到的以.jpg结尾的文件的属性信息find /home/ -empty -ls
:在/home目录下查找空的普通文件,并执行ls显示属性的动作
-
-delete:删除查找到的文件
find /home/ -empty -delete
:在/home目录下查找空的普通文件,并删除它们
-
-exec:执行命令
find /sbin -type f -size +1M -exec ls -lh {} \;
:在/sbin目录中查找文件类型为常规文件并且文件大小大于1M,再使用ls命令来查看找到的文件的属性find /sbin -type f -size +1M -exec cp {} /tmp \;
:在/sbin目录中查找文件类型为常规文件并且文件大小大于1M,再使用cp命令将这些文件复制到/tmp目录下
-
-ok:执行命令,但依次询问
find /home/ -empty -ok mv {} / \;
:在/home目录下查找空的普通文件,然后依次询问是否执行mv命令将它们移动到根目录下
示例:
find / -name "*.jpg"
通过这些命令,可以高效地在Linux系统中查找文件。无论是快速定位文件位置,还是深入搜索文件内容,这些工具一般都能满足需求。
相关文章:
08_Linux文件查找技巧:locate、find 和 grep 命令详解
系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客 文章目录 1. locate命令2. grep命令3. find命令 在Linux系统中,文件查找是一项常见的任务。本文将详细介绍三种强大的文件查找命令:locate、find 和 grep,以及它们的使用…...
JAVA 实验六
一: (1) 运行以上尟序并尣以上尟序尜尢一行尥码添加注解,将尟序保存尣e601.java (2) 以上尟序尣类变量是哪一个变量,类尠尞是哪一个尠尞,请找出类变量和类尠尞被使用尜语…...

电脑查不到IP地址是什么原因?怎么解决
在日常使用电脑的过程中,有时会遇到无法查询到电脑IP地址的情况,这可能会影响到网络的正常使用。本文将探讨电脑查不到IP地址的可能原因,并提供相应的解决方案。 一、原因分析 网络连接问题:首先,网络连接不稳定或…...

Axure重要元件三——中继器修改数据
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:中继器修改数据 主要内容:显示编辑内容、表格赋值、修改数据 应用场景:更新行、表单数据行修改 案例展示: 正文…...

应用层——电子邮件、MIME、简单网络管理协议SNMP
电子邮件 电子邮件系统采用三个主要构件组成:用户代理、邮件服务器、电子邮件所需的协议 我们可以简单的认为邮件服务器中有很多邮箱,还有用来缓存再转发邮件的缓存,发送方使用用户代理通过邮件发送协议。例如SMTP将邮件发送给发送方。 邮件服…...
我与C语言二周目邂逅vlog——8.编译和链接
C语言中的编译和链接过程详细总结 1. 概述 C 语言是一种经典的系统级编程语言,其开发过程包括多个阶段,其中最关键的就是编译和链接过程。编译和链接的理解对于掌握 C 语言程序的构建至关重要。在本篇文章中,我们将深入讲解 C 语言的编译和…...

Views Page 视图页面
下图中显示的 Views 页面允许自定义网格级别及其相应的 View。 Views (视图) 页面包含两个主要部分: 关卡设计师;请注意,其他设计器页面为在关卡设计器中选择的 View 提供设置;Properties (属性) 窗口&…...

Win10 IDEA远程连接HBase
Win10 IDEA远程连接HBase Win10 IDEA连接虚拟机中的Hadoop(HDFS) 关闭Hadoop和Hbase 如果已经关闭不需要走这一步 cd /usr/local/hbase bin/stop-hbase.sh cd /usr/local/hadoop ./sbin/stop-dfs.sh获取虚拟机的ip 虚拟机终端输入 ip a关闭虚拟机…...

1.centos 镜像
centos 它有官网的下载地址:https://vault.centos.org/ 选择想要的版本,我选择 centos7.8 进入到镜像目录 isos 选择 x86_64 选择想要的版本,我选择 CentOS-7-x86_64-DVD-2003.iso 安装就正常安装就行。我选择虚拟机安装。这个参考&…...
electron 操作 cookie
前言:在 Electron 中操作 Cookie 可以使用electron模块提供的session对象来实现。 一、获取 Cookie 通过defaultSession获取默认会话对象,然后调用cookies.get方法并传入要获取 Cookie 的 URL 地址,以获取该 URL 对应的 Cookie。 const el…...

黑马软件测试第一篇_Linux
Linux 操作系统 说明: 所有硬件设备组装完成后的第⼀一层软件, 能够使⽤用户使⽤用硬件设备的软件 即为操作系统 常见分类 桌⾯面操作系统: Windows/macOS/Linux移动端操作系统: Android(安卓)/iOS(苹果)服务器器操作系统: Linux/Windows Server嵌⼊入式操作系统: Android(底…...
npm run dev 启动前端项目的原理
在一个使用 Vite 构建工具的 Vue 项目中,当你运行 npm run dev 时,实际执行的命令是 vite。为了理解这一过程,我们需要了解几个关键点: package.json 文件中的 scripts 字段: "scripts": {"dev": "vite&…...

【2024年SCI一区新算法:黑翅鸢优化算法 】分布式电网故障定位
1 场景介绍 使用10节点网络 2 故障设置 分为单重故障和两重故障 %% 2 故障设置 %% 1)单重故障 I[1,-1,0,0,-1,-1,0,0,-1,-1]; % 区段1故障 节点状态实际编码(是否流过故障电流) % I[1,1,0,0,-1,-1,0,0,-1,-1]; % 区段2故障 % I[…...
PyTorch 中 12 种张量操作详解
创作不易,还请各位同学三连点赞!!收藏!!转发!!! 对于刚入门学习Python还找不到方向的小伙伴可以试试我的这份学习方法和籽料,免费自取!! PyTorc…...

雷池WAF自动化实现安全运营实操案例终极篇
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
微信小程序实现canvas电子签名
一、先看效果 小程序canvas电子签名 二、文档 微信小程序canvas 组件文档 微信小程序canvas API文档 H5Canvas文档 三、分析 1、初始话Canvas容器 2、Canvas触摸事件,bindtouchstart(手指触摸动作开始)、bindtouchmove(手指触摸…...

【SpringCloud】Seata微服务事务
Seata微服务事务 分布式事务问题:本地事务分布式事务演示分布式事务问题:示例1 分布式事务理论CAP定理一致性可用性分区容错矛盾 Base理论解决分布式事务的思路 初识SeataSeata的架构部署TC服务微服务集成Seata引入依赖配置TC地址 其他服务 动手实践XA模…...
重新阅读《马说》,感悟“伯乐相马”背后的被选择与选择的大智慧
“初闻不识曲中意,再听已是曲终人”。世有伯乐,然后有千里马。千里马常有,而伯乐不常有。无论你是考研考公等考试大军中的一员,还是已步入社会的打工人或者领导,当你面临被人选择或者选择人时,皆可从《马说…...

深入拆解TomcatJetty(三)
深入拆解Tomcat&Jetty(三) 专栏地址:https://time.geekbang.org/column/intro/100027701 1 Tomcat组件生命周期 Tomcat如何如何实现一键式启停 Tomcat 架构图和请求处理流程如图所示: 对组件之间的关系进行分析,…...
MySQL 实现简单的性能优化
一:硬件优化 更高的网络带宽:在处理大规模的远程请求时可以提高MySQL服务器的响应速度; 更大的内存空间:有助于缓存更多的数据库数据,减少磁盘I/O操作,提高整体性能; 换用企业级SSD࿱…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...