首页 > 编程知识 正文

shell脚本查找文件,find查找文件内容命令

时间:2023-05-05 19:56:07 阅读:35268 作者:1873

哲涛SUM服务器监控软件作为集中监控平台类软件,可以对各种Linux操作系统进行集中统一的监控,主要是对Linux的CPU利用率、内存利用率、磁盘空间利用率、进程等进行统一的监控。 SUM服务器监视软件不仅可以监视Linux系统的基本性能,还可以集中管理Linux,如运行Linux命令、重新启动Linux服务器、重新启动部分进程等。

一.常用检索命令

我们经常查找linux上的文件,但不知道放在哪里了,可以使用以下命令进行搜索。

显示which可执行文件的位置

显示whereis文件的位置

locate与数据库协作以显示文件的位置

find实际搜索硬盘以查找文档名称

二. which命令的一般方法

因为which会从PATH环境变量中在此路径中查找可执行文件,所以基本功能是查找可执行文件。

which命令在正常使用时后跟linux命令,可以从输出结果中查找命令的可执行文件。

三. whereis命令的一般方法

1、语法:

whereis [-bmsu]文件或目录名称

参数说明:

-b :只查找二进制文件

-m :仅查找文档手动路径下的文件

-s :只查找源文件

-u :没有说明文档的文件

2、例:

查找与passwd文件相关的所有文件。

仅搜索二进制文件:

与查找相比,whereis搜索速度非常快。 这是因为linux系统将系统中的所有文件记录在单个数据库文件中。 使用whereis和后面介绍的locate,从数据库中搜索数据更有效,而不是像find命令那样遍历和搜索硬盘。 但是,此数据库文件不是实时更新的,默认情况下每周更新一次。 因此,在whereis和locate中搜索文件时,可能会发现已删除的数据,或者刚创建文件时找不到。 这是因为数据库文件尚未更新。

四. locate命令的一般方法

linux系统没有缺省的locate命令,因此必须手动安装。

如上所述,使用locate命令进行搜索时,必须依赖于最初生成的数据库。 可能会检测到最初创建和删除的文件。 要立即启用,必须加载使用updatedb命令搜索到的新数据库。 由于此负载会增加负载,因此建议在运行updatedb命令时谨慎运行,并在晚上同步。

搜索结果显示,使用locate命令的搜索结果比whereis和which搜索更详细,但不能进行严格的模糊匹配搜索。 介绍使用find命令进行严格的匹配搜索。

五. find命令的一般方法

1、命令格式

find pathname-options [-print-exec-ok . ]

2、指令参数

用pathname: find命令搜索到的目录路径。 例如,当前目录用.表示,系统根目录用/表示。

-print: find命令将匹配文件输出到标准输出。

-exec: find命令对匹配文件执行参数提供的shell命令。 对应命令的格式为' command' { } ;{ }和(注意之间的空间。

-确定:其工作方式与- exec相同,但提示用户在更安全的模式下运行参数提供的shell命令,并在运行每个命令之前确定是否由用户执行。

3、常用选项

-name按文件名搜索文件并支持直通。

-iname忽略文件名的大小写搜索。

-perm根据文件权限搜索文件。

-user按文件所有者搜索文件。

-group按文件所属的组搜索文件。

-nogroup查找/etc/groups中不存在的没有有效所属组的文件。

-nouser搜索没有有效所有者的文件。 也就是说,/etc/passwd中不存在该文件的所有者。

-newer file1! 查找比文件2文件file1新但比文件file2旧的文件。

- follow :如果find命令检测到符号链接文件,则跟踪链接到的文件。

-type查找以下类型的文件:

b -块设备文件。

d -目录。

c -字符设备文件。

p -管道文件。

l符号链接文件。

f -普通文件。

组合条件:在搜索选项之前添加

答:与。 同时满足,可以省略

o :或者,一个满足

-not, 不。 反对

-size n:n前面可以是正负数,后面常用的单位是k、m、g。 例如,如果用2M表示大于2M文件,用2M表示1M-2M间的文件,则-

2M表示0-1M之间的文件。

-mtime {-|+}n: 以天为单位,按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-mtime选项使用相差不多。另外,下面三个的区别:

-amin n   查找系统中最后N分钟访问的文件

-atime n  查找系统中最后n*24小时访问的文件

-cmin n   查找系统中最后N分钟被改变文件状态的文件

-ctime n  查找系统中最后n*24小时被改变文件状态的文件

-mmin n   查找系统中最后N分钟被改变文件数据的文件

-mtime n  查找系统中最后n*24小时被改变文件数据的文件

根据权限查找:-perm [+|-]MODE精确匹配+MODE:任何一类用户的任何一位权限匹配即可,常用于查找某类用用户的某特定权限是否存在 ,-MODE: 每类用户的指定要检查的权限位都匹配 ,例如:

文件权限:644

-perm 600:不匹配

-perm +222:匹配,查找用户有写权限

-perm +002:不匹配,0表示不查看

-perm -444:匹配

4、使用举例

根据上面的举例可以总结:当我们用whereis和locate无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis和locate。 locate 是在数据库里查找,数据库大至每天更新一次。whereis 可以找到可执行命令和man pagefind 就是根据条件查找文件。which 可以找到可执行文件和别名(alias) 。

更多关于服务器监控软件、linux系统知识,请点击此处

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。