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
查询某服务安装了哪些文件