语法:find [路径] [参数] [action]
- -name filename,查找名为filename的文件
- -iname filename,查找名为filename的文件,但是不区分大小写
- -user username,查找属主为username的文件
- -group groupname,查找属组为groupname的文件
- -nogroup,查找没有有效属组的文件,即文件的属组在/etc/groups中不存在
- -nouser,查找没有有效属主的文件,即文件的属主在/etc/passwd中不存
- -uid,根据uid查找
- -gid,根据gid查找
- -mtime +n/-n,写入时间大于/小于n天的文件
- -mmin +n/-n,写入时间大于/小于n分钟的文件
- -atime +n/-n,访问或执行时间大于/小于n天的文件
- -amin +n/-n,访问或执行时间大于/小于n分钟的文件
- -ctime +n/-n,写入、更改inode属性(例如更改所有者、权限或者链接)时间大于/小于n天的文件
- -cmin +n/-n,写入、更改inode属性(例如更改所有者、权限或者链接)时间大于/小于n分钟的文件
- -type b/d/c/p/l/f/s,查是块设备、目录、字符设备、管道、符号链接、普通文件、socket文件
- -size +n/-n[bmc],按文件大小查找
- -perm,按执行权限查找
- -prune,忽略某个目录
- -a,连接两个不同的条件,但是两个条件必须同时满足
- -o,连接两个不同的条件,两个条件中有一个满足即可
- -not,对条件取反
例子:
-perm
#find /tmp -perm 755 //查找在/tmp目录下权限是755的文件
#find /tmp -perm +222 //表示只要有一类用户(属主,属组,其他)的匹配写权限就行
#find /tmp -perm -222 //表示必须所有类别用户都满足有写权限
-size
#find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
#find /tmp -size +2M //查找在/tmp 目录下大于2M的文件#find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
查找完执行的action
# -print //默认情况下的动作
# -ls //查找到后用ls 显示出来
# -ok [commend] //查找后执行命令的时候询问用户是否要执行
# -exec [commend] //查找后执行命令的时候不询问用户,直接执行
#find /tmp -atime +30 -exec rm -rf {} ;#{}代表查找到的文件
#find /tmp -name "*.php"|xargs chmod a+x
指定多个目录
#find /etc /tmp /root -name passwd //目录之间用空格隔开
通配符使用
*,0个或多个任意字符
?,任意一个字符
[],括号里面的任意一个字符
-a,-o,-not
#find /tmp -name "*.php" -a -user root
#find /tmp -name "*.sql" -o user zhaoyn
#find /tmp -not -user root
忽略指定目录
#find ./ -path "./server" -prune -o -name "*.log" -print
忽略多个目录
#find ./ ( -path "./server" -o -path "./test" ) -prune -o -name "*.log" -print