您的位置:首页 > 运维架构 > Linux

linux下find和locate文件查找命令详解

2016-04-16 19:59 951 查看
linux下find和locate文件查找命令详解文件查找命令:
locate命令特点
1.非实时,模糊匹配,查找是根据全系统文件数据库进行的;
2.updatedb, 手动更新生成文件数据库,默认第天凌晨4点02分更新数据库
3.速度快
find命令特点:

1.实时
2.精确
3.支持众多查找标准
4.搜索指定目录中的所有文件完成查找,但速度慢;
格式: find 查找路径 匹配标准 查找到以后的处理运作
查找路径:默认为当前目录
匹配标准:默认为指定路径下的所有文件
处理运作:默认为显示

匹配标准:
-name '文件名':对文件名作精确匹配,可用文件名通配表示:
-iname '文件名': 文件名匹配时不区分大小写
-regex 模式:基于正则表达式进行文件名匹配
-user 用户名: 根据属主查找
-group 组名: 根据属组查找
-uid UID: 根据UID查找
-gid GID: 根据GID查找
-nouser:查找没有属主的文件
-nogroup: 查找没有属组的文件
-type: f d c l p s b 根据文件类型查找
-size:[+|-]k/M/G 根文件大小查找
-mtime 修改天数 例如 7,代表7天前那一天时刻修改的所有文件
-ctime 改变天数 例如 -7,代表7天之内改变的所有文件
-atime 访问天数 例如 +7,代表7天之前所有访问过的文件
-mmin 修改分钟 例如 7,代表7分钟前那一分时刻修改的所有文件
-cmin 改变分钟 例如 -7,代表7分钟之内改变的所有文件
-amin 访问分钟 例如 +7,代表7分钟之前访问的所有文件
-perm 模式:精确匹配
/模式: 任意一位匹配即可
-模式: 完全包含此模式权限才符合条件
组合条件:-a 与 ,-o 或, -not 非
-ls:相当于ls -l显示文件的详细信息
-ok 命令 {} \; 每次操作需要与用户交互
-exec 命令 {} \; 无需交互
xargs命令 :无需 {} \; 但需与管道 | 一起使用

实例说明:
1、查找/var/spool目录下属主为root并且属组为mail的所有文件;
find /var/spool -user root -group mail
2、查找/usr目录下不属于root,tom,或user1的文件;

find /usr -not -user root -a -not -user tom -a -not -user user1
find /usr -not \( -user root -o -user tom -o -user user1 \)
3、查找/etc目录下最近2天内内容修改过且不属于root及tom用户的文件;

find /etc -mtime -2 -not \ ( -user root -o -user tom \)
find /etc -mtime -2 -not -user root -a -not -user tom
4、查找当前系统上没有属主或属组且最近30分钟内曾被访问过的文件,并将其属主属组均修改为root;

find / \( -nouser -o -nogroup \) -a -amin -30 -exec chown root:root {} \;

5、查找/etc目录下大于10M的文件,并将其文件名写入/tmp/hugefiles文件中;

find /etc -size +10M >> /tmp/hugefiles
6、查找/bin目录下所有用户都没有写权限的文件,显示出其详细信息;

find /bin -not -perm /222 -ls
7.查找当前系统UID大于1000的所有文件
find / -uid +1000
find / -uid +1000 >> /tmp/uidfiles
find / -uid +1000 -exec echo {} >> /tmp/uidfiles \;
find / -uid +1000 | xargs echo >> /tmp/uidfiles

本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1764561
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: