Linux-在指定文件类型中递归查找到目标字符串

简介: Linux-在指定文件类型中递归查找到目标字符串

命令


find .  -iname '*.conf' | xargs grep "search string" -sl


解析


. 当前目录


按文件名查找:

-name: 查找时文件名大小写敏感。

-iname: 查找时文件名大小写不敏感


‘*.conf’

文件类型。比如这里查询的是.conf类型的文件,要查找 xml结尾的 *.xml等等…..


xargs命令:


该命令的主要功能是从输入中构建和执行shell命令


在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。

但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。

这就是xargs命令的用处所在,特别是与find命令一起使用。


find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。


在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;


而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。


grep 后面的参数解析:


-l使得grep只打印匹配的文件名,而不打印匹配的行。只显示包含匹配模板的行的文件名清单。


-l, –files-with-matches print only names of FILEs containing matches

-s, –no-messages suppress error messages

相关文章
|
30天前
|
JavaScript 关系型数据库 Shell
Linux shell编写技巧之随机取字符串(一)
本文介绍了Linux Shell脚本的编写技巧,包括环境配置、变量命名规则和缩进语法,并提供了一个实例练习,展示如何使用`$RANDOM`变量和`md5sum`命令来生成随机的8位字符串。
33 4
|
29天前
|
存储 监控 网络协议
在Linux中,如何配置iSCSI目标?
在Linux中,如何配置iSCSI目标?
|
29天前
|
机器学习/深度学习 Ubuntu Linux
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
|
1月前
|
存储 监控 网络协议
在Linux中,如何配置和管理iSCSI目标和发起器?
在Linux中,如何配置和管理iSCSI目标和发起器?
|
1月前
|
存储 Linux C++
|
1月前
|
Linux Perl
Linux进行文件字符串替换
【8月更文挑战第5天】Linux进行文件字符串替换
251 3
|
29天前
|
Linux Shell 网络安全
在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?
在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?
|
29天前
|
安全 Linux 网络安全
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
|
29天前
|
Linux
在Linux中,rsync同步数据时,如果目标⽂件比源⽂件还新,则忽略该文件,如何做?
在Linux中,rsync同步数据时,如果目标⽂件比源⽂件还新,则忽略该文件,如何做?
|
29天前
|
Linux
在Linux中,Rsync 同步时,如果要同步的源中有软连接,如何把软连接的目标文件或者目录同步?
在Linux中,Rsync 同步时,如果要同步的源中有软连接,如何把软连接的目标文件或者目录同步?