Linux下文件搜索处理实例心得

一、locate:
    locate [选项] 关键词
    在文件数据库中查询匹配搜索条件的文件。
选项:
-i:搜索时是否区分大小写,默认区分;加上这个选项就不区分大小写;
-n X:只显示前 X个匹配项目;
 
备注:
*文件数据库是有管理员使用 updatedb来生成或者更新的,否则新建立的文件会查不到;一般情况下数据库在后台自动建立更新。
*搜索的是全路径,不单单是文件名。
 
二、find:
find [目录……] [条件……]
    比locate命令慢,但更加准确;
*如果没有指定目录,则在当前目录查询;
*如果没有指定条件则匹配所有条件;
可以在找到的文件上执行命令:使用选项-ok或者-exec
1、基本条件:
1) -name 文件名:查找匹配文件名;

 2) -user 用户名:根据用户名查找;
       -uid 用户ID:根据UID查找;
 
 3) -group 组名:根据组名查找;
2、条件逻辑运算:
搜索条件默认使用AND迅速连接符; find / -name ook -user redhat 就是满足文件名为ook,并且属于redhat这个用户的文件
1) -o来进行OR或运算;
 
 2) -not:逻辑非运算:

  3、权限相关搜索 -perm   [+/-]数字权限
1) + 数字权限:表示至少符合了一位;
 
 2) - 数字权限:表示所有位数都符合:
 
 4、按照文件大小来搜索 :-size [+/-] 文件大小
find –size 1024K    文件大小正好1M
find –size +1024K 文件大小大于1M
find –size -1024K    文件大小小于1M
5、按照存取时间搜索:
-atime 最后一次被读取的时间;
-mtime文件数据上一次被修改的时间;
-ctime文件状态变化时间;
-atime –mtime –ctime 单位是 ,如果需要按 分钟来可以写成 -amin –mmin –cmin
find –mmin -10 搜索文件修改日期少于10天的;
6、find后的文件处理:
1) -ok:执行命令时进行确认;
2) -exec :直接执行命令无需确认;
备注:
{}表示找到的文件名; 空格和\;表示终止。
 

当然,find命令使用组合很多很多,希望通过这个文章能让大家对find使用更加熟悉、掌握更多的组合。