linux中搜索相关命令

linux中搜索命令有find、which、whereis、locate、rpm

一、find

1、根据文件名称查询

find /etc -name init
在/etc及其子目录下精确匹配名称为init的文件

find /etc -name *init
在/etc及其子目录下模糊匹配以init结束的文件

find /etc -name init*/etc及其子目录下模糊匹配以init开头的文件

find /etc -name *init*/etc及其子目录下模糊匹配含有init的文件

find /etc -name init???/etc及其子目录下模糊匹配以init开头并且后面跟着3个字母的文件

find /tmp -iname init???
查询时不区分大小写

2、根据文件大小查询

find / -size +204800
查找跟目录下大于100MB的文件

大于+,小于-,等于直接写数字
1个数据块=512b=0.5kb,100MB=100*1024kb=102400kb,1kb=2个数据块,102400kb=204800个数据块

3、根据文件所有者查询

find / -user zhangsan
查询跟目录下所有者是zhangsan的文件

根据所属组查询:-group

4、根据文件修改时间查询

find /etc -cmin -5
查询5分钟内修改过文件属性的文件和目录

find / -cmin -1  
查询根路径下最近一分钟新增的文件

find / -ctime -1
查询根路径下最近一天新增的文件

-amin:访问时间(access) -cmin:文件属性(change) -mmin:文件内容(modify)

5、根据多个条件查询

find /etc -name *init* -a -type d
查询文件名包含init的路径(不是文件)

连接符号,a :and(并且),o:other(或者)
type 文件类型,d:路径,f:文件,l:连接

6、exec对查询结果执行命令

find /etc -name inittab -exec ls -l {} \;
在/etc下查找name是inittab的文件或路径,并且执行 ls -l 命令

find /etc -name init* -a -type f -exec ls -lt {} \;
在/etc下查询name以init开头,并且是文件,并查看详细属性

{} \;是固定写法,在/etc下查询name以init开头,并且是文件,并查看详细属性

二、which

查找命令
which useradd
which passwd
which cp

结果如:/usr/sbin/useradd

三、whereis

查找命令
whereis useradd
whereis passwd
whereis cp

结果如:useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
与which区别是会显示该命令的文档位置

四、locate

基于文件资料库的查找
安装:yum install mlocate
更新资料库:updatedb

locate init
只要包含init都会查出来(不会查找/tmp路径下的文件)

假如新建了一个文件,刚开始查不到,因为没有维护到文件资料库,这时用命令updatedb更新文件资料库就能查到了
locate:区分大小写,locate -i:不区分大小写

 五、rpm

rpm -ql nginx
查询某服务安装了哪些文件

 

posted @ 2019-07-08 22:21  雷雨客  阅读(303)  评论(0编辑  收藏  举报