find,find函数


语法: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

相关内容