且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

程序员之路:Linux文件搜索

更新时间:2022-08-23 22:19:53

1、文件搜索命令locate

格式:locate 文件名

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


/var/lib/mlocate   #locate命令所搜索的后台数据库


update 更新数据库

Linux默认一天更新一次文件数据库


/etc/updatedb.conf配置文件

PRUNE_BIND_MOUNTS = "yes"  #开启搜索限制

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

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

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


2、命令搜索命令whereis和which

whereis只能查命令所在位置

-b只查看执行文件  

-m帮助文档所在位置 不能搜索普通文件。


which

文件名 能看到命令所在位置,如果命令有别名(alias)可以看到


PATH环境变量

定义的是系统搜索命令的路径

echo $PATH


下面是linux系统约定不同类型文件默认的颜色:

白色:表示普通文件

蓝色:表示目录

绿色:表示可执行文件

红色:表示压缩文件

浅蓝色:链接文件

红色闪烁:表示链接的文件有问题

黄色:表示设备文件

灰色:表示其它文件


3、文件搜索命令find

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


(1)搜索文件

find / -name filename

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

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


通配符:

* 匹配任意内容

? 匹配任意一个字符

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


(2)不区分大小写

find /root -iname filename


(3)按照所有者搜索

find /root -user root


(4)查找没有所有者的文件

find /root -nouser


(5)查找10天前修改的文件

find /var/log/ -mtime +10


-10  10天内修改的文件

10 10天当天修改的文件

+10 10天前修改的文件


atime 文件访问时间

ctime 改变文件属性

mtime 修改文件内容


(6)查找文件大小是25KB的文件

find  / -size 25k


-25k 小于2KB的文件

25k 等于25KB的文件

+25k 大于25KB的文件


(7)查找i节点是262422的文件

find / -inum 262422


(8)查找/etc 目录下,大于20KB并且小于50KB的文件

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

-a and 逻辑与,两个条件都满足

-o or 逻辑或,两个条件满足一个即可


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

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

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


4、搜索字符串命令grep

grep [选项] 字符串 文件名

-i 忽略大小写

-v 排除指定字符串


5、find命令与grep命令的区别

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

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