当前位置:首页 > 网络技术 > linux全局搜索命令(linux搜索文本中关键字)(linux搜索命令的关键字)

linux全局搜索命令(linux搜索文本中关键字)(linux搜索命令的关键字)

longge2022年03月24日 01:44:34网络技术48

1. 前言

本文主要介绍Linux系统下有哪些全局搜索命令,并讲解相关命令的使用方法与日常使用案例。

我们先来了解一下Linux下主要的5个全局搜索的命令工具。他们分别是find,locate,grep,which,whereis

其中,find是一个强大实时搜索工具,Linux支持的文件类型它都可以搜索到,locate一般是搜索文件,grep一般是搜索文本文件,which和whereis一般是用于搜索程序相关的文件内容。

linux全局搜索命令

2. Linux使用find命令全局搜索文件

find命令在某个目录下查找。

一般使用格式:

find <pathname> <-option> <filetype> <action> 

-pathname:所要查找的目录及其所有子目录(默认递归查找)。默认为当前目录。

-option:指定参数。

-filetype:想要查找的文件类型。

-action:对查找结果进行的处理。

在linux的日常管理中,使用find命令全局搜索文件的使用频率很高,熟练掌握以及灵活运用对提高工作效率很有帮助。

find的语法比较简单,常用参数的就那么几个,比如-name、-type、-ctime等。本文只是介绍其中一些常用的使用案例,如果需要更多的帮助,请参考find的使用手册。

2.1 Linux使用`find`命令根据文件名全局搜索文件

搜索当前目录下名字为mypic.png的文件

[root@zcwyou ~]# find . -name "mypic.png"

搜索当前目录下所有的jpg文件

[root@zcwyou ~]# find . -name "*.jpg"

搜索当前目录下的jpg文件和png文件

[root@zcwyou ~]# find . -name "*.jpg" -o -name "*.png"

搜索当前目录下不是以png结尾的文件

[root@zcwyou ~]# find . ! -name "*.png"

2.2 使用`find`命令根据正则表达式全局查找文件

搜索当前目录下,文件名以数字+png后缀结尾的文件。

[root@zcwyou ~]# find . -regex "./*[0-9]+.png" 

2.3 使用`find`命令和指定的目录路径查找文件

搜索当前目录下,路径中包含folder的文件/路径。

[root@zcwyou ~]# find . -path "*folder*"

2.4 使用`find`命令根据文件类型查找

通过-type进行文件类型的过滤。

  • f 普通文件
  • l 符号连接
  • d 目录
  • c 字符设备
  • b 块设备
  • s 套接字
  • p Fifo

比如,搜索当前目录下,路径中包含zcwyou的文件

[root@zcwyou ~]# find . -type f -path "*zcwyou*"

2.5 Linux根据搜索深度查找文件

搜索当前目录下所有以txt后缀结尾的文件,不包括子目录。

[root@zcwyou ~]# find . -maxdepth 1 -name "*.txt"

相对应的,也是mindepth选项。

[root@zcwyou ~]# find . -mindepth 2 -maxdepth 2 -name "*.png"

2.6 Linux使用`find`命令根据文件大小搜索文件

通过-size来过滤文件尺寸。支持的文件大小单元如下

– b 表示块(512字节)

– c 表示字节

– w 表示字(2字节)

– k 表示千字节

– M 表示兆字节

– G 表示吉字节

比如,使用find命令搜索当前目录下文件大小超过100M的文件

[root@zcwyou ~]# find . -type f -size +100M 

2.7 根据文件的访问、修改、变化时间全局搜索文件

支持下面的时间类型。

  • 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
  • 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
  • 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

全局查找的案例1:搜索1天内被修改过的文件

[root@zcwyou ~]# find . -type f -mtime -1

全局查找的案例2:搜索最近1周内被访问过的文件

[root@zcwyou ~]# find . -type f -atime -7

将日志目录里超过一周的日志文件,移动到/tmp/log里。

[root@zcwyou ~]# find . -type f -mtime +7 -name "*.log" -exec mv {} /tmp/log ;

注意:{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。

另外,;用来表示命令结束,如果没有加,则会有如下提示

find: -exec: no terminating “;” or “+”

关于find命令更多的使用方法请参考本站的另一帖

Linux find命令查找文件34个实用案例

根据文件的访问、修改、变化时间全局搜索文件

3. Linux使用`locate`命令全局搜索文件

locate命令在系统的全局范围内查找。

一般使用格式:

locate <-option> <filetype>

-option:指定参数。

-filetype:想要查找的文件类型。

locate常用参数

-d:指定要查找的数据库路径

-h: 显示辅助讯息

-i:忽略大小写

-q:安静模式,不会显示任何错误讯息。

-n:至多显示 n个输出。

-r: 使用正规运算式 做寻找的条件。

-o: 指定资料库存的名称。

-V: 显示程式的版本讯息

简单的使用案例:

[root@zcwyou ~]# locate abc.txt

/usr/share/123/456/abc.txt

提示

locate是从数据库中读取数据,而不是从文件系统中读取。从数据库中读取时是读取updatedb命令返回的结果:

而updatedb命令默认是一天(24小时)才自动运行一次,这就意味着如果是最新创建的文件,使用locate命令可能查找不到。

所以在使用locate命令前,先手动运行updatedb命令(需要root权限),非root用户可以借助sudo取得root权限:

[root@zcwyou ~]# updatedb

Linux使用locate命令全局搜索文件

4. Linux使用`grep`命令对文本文件进行全局搜索关键字

和find及locate命令不同的是,grep命令是在指定文件中搜索特定的内容,然后将包含有这些匹配内容的行输出到标准输出。如果不指定文件名,则从标准输入读取内容。grep命令经常和find等命令结合使用,其中grep常充当“过滤器”的角色。

grep命令常用参数

-c: 只输出匹配行的行数。

-h: 查询多文件时不显示文件名。

-I: 不区分大小写(只适用于单字符)。

-n: 显示匹配的行和行号。

-s: 不显示 不存在或无匹配文本 的错误信息。

-v: 反向匹配,即显示不包含匹配文本的所有行。

-R: 递归查询,即连同子目录中的文件一起查询。

使用案例:

在当前目录下递归查找包含字符串”hello”的所有文件,并显示匹配行的行号

格式:grep -Rn “搜索的关键字” ~

例如:

[root@zcwyou ~]# grep -Rn "www.linurumen.com" ~

Linux使用grep命令对文本文件进行全局搜索关键字

5. 使用`which`命令全局搜索linux程序文件

which命令将在PATH变量指定的路径中 查找某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

例如,查看当前环境下使用的是哪个bash:

[root@zcwyou ~]# which passwd

6. 使用`whereis`命令全局搜索linux程序文件

whereis命令用来定位二进制文件(参数-b)、源代码文件(参数-s)和帮助手册文件(即man文件,参数-m)。如果省略参数,则返回所有信息。

whereis命令使用案例

[root@zcwyou ~]# whereis bash

7. 总结:

上面介绍的linux全局搜索命令有5个,每个都有特定的功能,每一个系统运维人员都要牢记和掌握它的使用方法,随时能高效查找和搜索目标文件。

免责声明
本站部分资源来源于互联网 如有侵权 请联系站长删除
龙哥网是优质的互联网科技创业资源_行业项目分享_网络知识引流变现方法的平台为广大网友提供学习互联网相关知识_内容变现的方法。#转载请注明出处!

“linux全局搜索命令(linux搜索文本中关键字)(linux搜索命令的关键字)” 的相关文章

性格分析与人物塑造心理课(人物性格塑造及角色分析论文)

性格分析与人物塑造心理课(人物性格塑造及角色分析论文)

课程介绍从理论到实践,不断地在探索。把该课程做成即插即用的抽屉式工具。通过人物性格分析图谱,对每一种人物原型进行剖析,加入人际动力,即不同的人格特质是如何互动的关系。学习地址百度:https://pa...

CSS文本居中并且两端对齐的样式属性text-align-last(css中文本居中对齐)

CSS文本居中并且两端对齐的样式属性text-align-last(css中文本居中对齐)

CSS中 text-align:justify; 实现文本两端对齐,最后一行居左;text-align:center; 实现文本居中显示,两端不对齐。 由于 CSS 一个选择器不能使用相同的两...

针对IE9不支持placeholder的兼容处理方法代码

针对IE9不支持placeholder的兼容处理方法代码

IE9及IE9以下浏览器不支持placeholder属性,对IE9的placeholder兼容性处理方法通常是把placeholder的属性值放在value属性中,但这样不利于判断值是否为空,兼容性...

node.js创建本地服务器并运行教程(nodejs搭建本地服务器)

node.js创建本地服务器并运行教程(nodejs搭建本地服务器)

Node.js就是运行在服务端的JavaScript,基于Chrome V8引擎的JavaScript运行环境,简易上手node.js后就可以在本地电脑上创建本地服务器。 在nodejs安装根...

xampp phpmyadmin访问被拒绝,不显示登录界面的解决方法

xampp phpmyadmin访问被拒绝,不显示登录界面的解决方法

xampp安装完成后,phpmyadmin密码默认为空,浏览器访问phpmyadmin直接进入管理首页,给phpmyadmin管理帐号设置密码后,登录页面直接显示连接错误,没有登录窗口。...

男性情感必修术视频课程(龙哥网)

男性情感必修术视频课程(龙哥网)

课程介绍智慧聊天术让你远离尬聊!带你解读女性心理,打造魅力男神!教你社交高手的聊天方法,破冰并建立好感产生话术脉络思维让聊天具有逻辑性拒绝尬聊,线下见面聊法。万年备t如何自救逆袭,让女生先对你表白一“...