找到[选项][查找路径][查找条件][处理动作]
查找路径:默认为当前目录
查找条件:默认为查找指定路径下的所有文件
处理动作:默认为显示
查找条件:
- name”文件名称“支持使用globbing正则表达式
- iname”文件名称“查找时不区分字符大小写
用户用户名根据属主查找
集团GroupName根据属组查找
UID UID根据UID查找
GID GID根据GID查找
-nouser查找没有属主的文件
-nogroup查找没有属组的文件
组合条件:
——与,同时满足
- o或,满足其一
——!非,取反
类型:根据文件类型查找
f:普通文件
d:目录
b:块设备
c:字符设备
l:符号链接文件
p:命名管道
s:套接字
:根据文件大小查找(常用单位:k、M G)
- #米查找所有文件大小小于# M的文件
+ #米查找所有文件大小大于# M的文件
#米查找所有文件大小等于# M的文件
根据时间戳查找:
以天为单位(时间):
atime
-mtime -ctime
+ #查找(# + 1)天之外被访问过的文件
- #查找#天之内被访问过的文件
,查找短于(# + 1)比;x祝辞=#天的时间段被访问过
以分钟为单位(分钟):
阿明
-mmin -cmin
+ #查找(# + 1)分之外被访问过的文件
- #查找#天之分被访问过的文件
,查找短于(# + 1)比;x祝辞=#分的时间段被访问过
根据权限查找:
烫[+ | -]模式
模式精确匹配
+模式任何一类用户的任何一位权限匹配;常用于查找某类用户的某特定权限是否存在,
模式每类用户的指定要检查的权限位都匹配。
文件权限:644
烫600否,因为不匹配644
烫+ 222是,因为任何一位有2权限
烫+ 002,,,,,否,因为任何一位的权限都不匹配
-444是烫发,因为每位的4权限都匹配
练习:
1,查找/var/目录属主为根且属组为邮件的所有文件;
#找到/var/用户根——一群邮件
2,查找/usr目录下不属于根,本或hadoop的所用文件;
#发现/usr/没Ц没П尽没adoop
#发现/usr/猏(用户根- o用户本- o用户hadoop \)
3,查找/etc/目录下最近一周内其内容修改过的,且不属于根或hadoop的文件;
/etc/-mtime 7 #找到根————————用户用户hadoop
/etc/-mtime 7 #发现————\(用户根- o用户hadoop \)
4,查找当前系统上没有属主或属组,且最近1个月内曾被访问过的文件;
#发现/\ (-nouser - o -nogroup \)——一次-30
5,查找/etc/目录下大于1米且类型为普通文件的所有文件;
/etc/+ 1 #发现m - a - type f
6,查找/etc/目录所有用户都没有写权限的文件;
/etc/? 222 #找到
所有都没有:相反:任何一个有
所有都有:相反:至少有一个没有
7日查找/etc/目录下至少有一类用户没有写权限;
/etc/?222 #找到
8日查找/etc/init。d/目录下,所有用户都有执行权限且其它用户有写权限的文件;
#找到/etc/init.-113 d/,烫发,
处理动作:
安全性默认打印在标准输出上
- ls以长格式输出各文件信息
- exec命令{}\;对查找到的文件执行指定的命令
-好的命令{}\;交互式的- exec;
| xargs命令
找到补充材料(摘自互联网):
找到与xargs
在使用找到命令的-选项处理匹配到的文件时,发现命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给高管的命令长度有限制,这样在找到命令运行几分钟之后,就会出现溢出错误。
错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与找到命令一起使用。
找到命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
在有些系统中,使用-选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;