一、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使用更加熟悉、掌握更多的组合。