Linux学习笔记————–文件搜索命令

/ 0评 / 0
文件搜索命令locate
locate 文件名
在后台数据库中按文件名搜索,搜索速度更快的,但是只能按照文件名搜索

/var/lib/mlocate
#locate命令所搜索的后台数据库,默认一天一更新,所以新文件搜不到~

updatedb
更新数据库

/etc/updatedb.conf配置文件
PRUNE_BIND_MOUNTS = "yes"
#开启搜索限制
PRUNEFS = 
#搜索时,不搜索的文件系统
PRUNENAMES = 
#搜索时,不搜索的文件类型
PEUNEPATHS = 
#搜索时,不搜索的路径



命令搜索命令 whereis 与 which

whereis(只能查系统命令)
#搜索命令所在路径及帮助文档所在位置
-b   只查找可执行文件
-m   只查找帮助文件

which
除了查看到命令位置 还能查看别名


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


文件搜索命令 find
find [搜索范围] [搜索条件]

find / -name install.log
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配

通配符:  
 *   匹配任意内容     
?   匹配任意一个字符    
[]   匹配任意一个中括号内的字符


find /root -name "install.log*"  (不加双引号不能识别通配符)

find /root -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  修改文件内容


find . -size 25k  #查找文件大小是25KB的文件
25M (M要大写)

-25k    小于25KB的文件
25k     等于25KB的文件
+25k    大于25KB的文件

find . -inum 262422   #查找i节点是262422的文件
 (i节点可以 ls -i 查看到)

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  排除指定字符串

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

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

评论已关闭。