标签:find locate 区分大小写 数据库 update 表达式
文件查找
1、locate 根据全系统文件数据库进行查找(非实时的,系统每天特定时间对系统中所有文件都进行收集存库)(非实时模糊查找)
update 手动生成文件数据库(运行一遍要很长时间)
2、find (实时精确遍历系统目录文件)
使用方法:find 查找路径 查找标准 查找后的处理动作
查找路径:默认为当前目录
查找标准:默认为指定路径下的所有文件
处理动作:默认为打印到屏幕上
-name FILENAME
支持通配符
-iname FILENAME 不区分大小写
-regex PATTERN 基于正则表达式
-user USERNAME 根据属主查找
-user GROP 根据属组查找
-uid ID 根据用户id查找
-gid ID 根据组id查找
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
-type 根据文件类型来查找
f:普通文件
d:目录
c b l p s...
-size 根据文件大小来查找 ( 小于整数时向上取整 )
[+|-]#K
[+|-]#M
[+|-]#G
组合条件
-a
-o
-not
例:find /tmp -nouser -a type d
find /tmp -not -type d
find ./ -not \(-user user1 -o -user user2\)
-mtime 创建时间(天)
-ctime 修改时间(天)
-atime 访问时间(天)
以此刻时间为准向前的时间
[+ | -] + time 时间time天之前
- time 时间time天内
-mmin
-cmin
-amin
[+ | -] 用法和time相同单位为分钟
-pern 权限
查找某权限的文件
MODE 权限等于MODE的文件
/MODE 任意一位匹配就满足条件
-MODE 文件权限能完全包含此MODE时才符合条件
find 执行动作
-print 显示
-ls 类似ls -l的形式显示每一个文件的详细信息
-ok COMMAND {} \: 每一次操作都要用户确认 花括号表示引用查到的文件名
-exec COMMOAND {} \: 不要用户确认
例: find ./ -perm -006 -exec chmod o-w {} \:
find ./ type d -ok chmod +x {} \:
find ./ -perm -020 mv {} {}.new \:
查找内容 | xargs CPMMAND 将查找到的内容直接使用管道送给xargs 后面跟命令进行处理
例: find /etc -size +1M | xargs echo >> /tem/etc.la
总结:
locate 是从数据库中查找文件,可能因为数据库没有更新而不会实时的查找文件,但是速度会比find快很多
find是实时的根据路径逐一的对文件进行检索,速度肯定没有locate快,但是会实时查找,总的来说find会比较常用一些。
本文出自 “Mr.Zhu -- 技术交流” 博客,请务必保留此出处http://bjishu.blog.51cto.com/7481301/1684916
标签:find locate 区分大小写 数据库 update 表达式
原文地址:http://bjishu.blog.51cto.com/7481301/1684916