linux基本命令【文件搜索命令】

时间:2021-04-19 17:02:00

文件搜索命令:locate  whereis  which  find

字符串搜索命令 grep

locate

用法 : locate 文件名

-因为locate命令是在后台数据库中按文件名搜索,并不需要搜索整个系统文件,所有搜索速度更快.

-/var/lib/mlocate

locate命令所搜索的后台数据库,后台数据库并不是实时更新的,默认是一天一更新.在某些linux系统中这个后台数据库名并不是相同的.

-updatedb

更新数据库(更新后即可搜索新建的文件)

缺点:只可以按照文件名进行搜索. 

优点:搜索速度更快,耗费资源较少.

locate默认规则是按照 /etc/updatedb.conf配置文件内容进行搜索,whereis which 也是按照这个规则进行搜索.

-PRUNE_BIND_MOUNTS = "yes"

#开启搜索限制.

-PRUNEFS = 

#搜索时,不搜索的文件系统.

-PRUNENAMES = 

#搜索时,不搜索的文件类型.

-PRUNEPATHS = 

#搜索时,不搜索的路径.

where 与 which

命令的搜索命令

用法: whereis 命令名

#搜索命令所在路径及帮助文档所在位置

选项:

-b:   只查找可执行文件

-m:  只查看帮助文件

用法 which 命令名

#搜索命令所在路径及别名

find

find [搜索范围] [搜索条件]

#搜索文件

find / -name install.log

#避免大范围搜索,会非常耗费系统资源

#find是在系统当中搜索符合条件的文件名. 如果需要匹配,使用通配符匹配,通配符是完全匹配

linux中的通配符

*   匹配任意内容  find / -name "*".php

?   匹配任意一个字符 find / -name a"?".php

[]  匹配任意一个中括号内的字符  find / -name "ab[cd]"

-  find / -iname install.log

#不区分大小写

-   find / -user root

#按照所有者搜索

-   find / -nouser

#查找没有所有者的文件

-   find /var/log -mtime +10

#查找10天前修改的文件

-10 10天内修改的文件

10 10天当天修改的文件

+10 10天前修改的文件

atime 文件访问时间

ctime 改变文件属性

mtime 修改文件内容

 -   find . -size +25k 按照M字节搜索 +25M

#按照文件大小搜索文件

-  find . inum 262422 

#查找i节点是262422的文件

-   find /etc/ -size +20k -a -size -50k

#查找/etc/目录下,大于20k并且小于50k的文件

-a : and

-o :  or

-  find /etc/ -size +20k -a -size -50k -exec ls -lh {} \ ;

#查找/etc/目录下,大于20k并且小于50k的文件,并显示详细信息

# -exec/ -ok 命令{} \;对搜索结果执行操作

grep

grep [选项] 字符串 文件名

#在文件中匹配符合条件的字符串

选项:

  -i   : 忽略大小写

  -v  :  取反

-n:显示匹配行及行号。

find和grep的区别:

find命令:在系统当中搜索符合条件的文件名, 如果需要匹配,使用通配符匹配,通配符是完全匹配.

grep命令:在文件当中搜素符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配