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使用更加熟悉、掌握更多的组合。
posted on 2011-04-12 16:25  清清飞扬  阅读(958)  评论(0编辑  收藏  举报