1。导言
主要介绍了Linux系统下有哪些全局搜索命令,并讲解了相关命令的使用方法和日常用例。
让我们来看看Linux下全局搜索的五个主要命令工具。它们是查找、定位、搜索、哪个和在哪里。
其中,find是一个强大实时搜索工具,Linux支持的文件类型它都可以搜索到,locate一般是搜索文件,grep一般是搜索文本文件,which和whereis一般是用于搜索程序相关的文件内容。
其中find是一个强大的实时搜索工具,可以搜索Linux支持的所有文件类型,locate一般是搜索文件,grep一般是搜索文本文件,which和whereis一般用于搜索程序相关的文件内容。
Linux全局搜索命令
2。Linux使用find命令全局搜索文件
find命令在目录中查找。
通用格式:
find <pathname> <-option> <filetype> <action>
- pathname:要搜索的目录及其所有子目录(默认递归搜索)。默认为当前目录。
- option:指定参数。
- filetype:要查找的文件类型。
-操作:搜索结果的处理。
在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”命令和指定的目录路径来查找文件
在当前目录中搜索包含文件夹的文件/路径。
[root@zcwyou ~]# find . -path "*folder*"
2.4使用“find”命令查找
按类型过滤文件类型。
f 普通文件l 符号连接d 目录c 字符设备b 块设备s 套接字p Fifo
例如,在当前目录中搜索路径中包含zcwyou的文件。
[root@zcwyou ~]# find . -type f -path "*zcwyou*"
2.5 Linux根据搜索深度来搜索文件
搜索当前目录中所有以txt后缀结尾的文件,不包括子目录。
[root@zcwyou ~]# find . -***xdepth 1 -name "*.txt"
相应的,也是mindepth选项。
[root@zcwyou ~]# find . -mindepth 2 -***xdepth 2 -name "*.png"
2.6 Linux使用find命令根据文件的大小来搜索文件
按大小过滤文件大小。支持的文件大小单位如下
–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:搜索上周访问过的文件。
[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:没有终止“;”或者“+”
有关find命令的更多用法,请参考本网站上的另一篇文章。
Linux find命令查找文件34个实用案例
Linux find命令查找文件34个实际案例
根据文件的访问、修改和更改时间对文件进行全局搜索。
3。Linux使用locate命令来全局搜索文件
locate命令搜索系统的全局范围。
通用格式:
locate <-option> <filetype>
- option:指定参数。
- filetype:要查找的文件类型。
定位的通用参数
-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:递归查询,即与子目录中的文件一起查询。
使用案例:
递归搜索当前目录中的字符串”你好”的所有文件,并显示匹配行的行号。
格式:grep-Rn “搜索关键词”~
例如:
[root@zcwyou ~]# grep -Rn "***.linurumen.com" ~
使用Linux grep命令在文本文件中全局搜索关键字。
5。使用which命令全局搜索linux程序文件
哪个命令将在PATH变量指定的路径中找到系统命令的位置,并返回第一个搜索结果。也就是说,通过使用哪个命令,可以看到一个系统命令是否存在,命令在哪里执行。
例如,检查当前环境中使用的bash:
[root@zcwyou ~]# which passwd
6。使用“where is”命令全局搜索linux程序文件
whereis命令用于定位二进制文件(参数-b)、源代码文件(参数-s)和帮助手册文件(即***n文件,参数-m)。如果省略参数,则返回所有信息。
whereis命令的用例
[root@zcwyou ~]# whereis bash
7。摘要:
上面介绍了五个linux全局搜索命令,每个命令都有特定的功能。每个系统运维人员都应该记住并掌握它的使用方法,并能随时高效地找到和搜索目标文件。
本文来自怪你过分美丽投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/596534.html