linux(二)文件搜索命令

时间:2021-02-28 17:02:12

二、文件搜索命令

locate搜索速度比find快,但只能按文件名搜索

locate 文件名

在后台数据库中按文件名搜索,搜索速度更快

/var/lib/mlocate

#locate命令所搜索的后台数据库,linux版本不同,数据库的名可能不同

updatedb

更新数据库

locate的数据库不是实时更新的,所以有的新建文件,搜索不到,如果我们想要搜索,我们可以强制更新 updatedb

locate根据/etc/updatedb.conf配置文件进行搜索

PRUNE_BIND_MOUNTS = "yes"

#开启搜索限制

PRUNEFS = 

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

PRUNENAMES = 

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

PRUNEPATHS = 

#搜索时,不搜索的路径

-------------------------------------

搜索命令的命令 whereis和which只能搜索外来命令,不能搜索内核自带命令

whereis 命令名

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

选项:

-b:只查找可执行文件

-m:只查找帮助文件

---------------------------

which 文件名

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

----------------------------

PATH环境变量:定义的是系统搜索命令的路径

echo $PATH

#多个路径用:分隔

whereis 和 which依赖PATH所定义的路径

----------------------

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

#搜索文件


find / -name install.log

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

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

* 匹配任意内容

? 匹配任意一个字符

[] 匹配任意一个中括号内的字符

使用模糊匹配的话 要使用“”

find /roo -iname install.log

#不区分大小写

find /root -user root

#按照所有者搜索

find /root -nouser

#查找没有所有者的文件

------

find /var/log/ -mtime +10

#查找10天前修改的文件

-10 10天内修改文件

10 10天当天修改的文件

+10 10天前修改的文件

atime 文件访问时间

ctime 改变文件属性

mtime 修改文件内容

-------

kb 用 小写k

Mb 用大写M

find . -size 25k

#在当前目录下,查找文件大小是25kb的文件

-25k 小于25kb的文件

25k 等于25kb的文件

+25k 大于25kb的文件

---------

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 [选项] 字符串 文件名

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

选项:

-i 忽略大小写

-v 排除指定字符串

例如:grep “size” anaconda-ks.cfg

会在anaconda-ks.cfg文件中查找有size字符串的行,并显示

find命令和grep命令的区别

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

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