Find:
作用:常在系统中作为查找文件所用到的角色
语法:find 查找位置 查找类型 [查找后所执行的操作]
查找位置:绝对路径或相对路径
查找类型:
-name:根据文件名查找
-iname:不区分大小写的方式查找,只支持?[]^等风格
-perm:精确权限查找,后边接权限的掩码值,掩码值用法如下:
755:查找777权限的文件
/222:查找至少一类用户有写权限的文件
/002:查找其他用户有写权限的文件
-222:查找三类用户都有写权限的文件
-user:以用户名查找
-group:以组名查找
-nogroup:查找无属组的文件
-nouser:查找无属主的文件
-regex:匹配正则表达式进行查找,-iregex:匹配正则并忽略大小写
-type:以文件类型查找
f:普通文件 d:目录文件 b:块设备文件 c:字符设备文件 l:链接文件 s:套接字符文件 p:管道文件
-size:以文件大小查找,包含K、M、G单位,正数代表大于,负数代表小于,整数代表等于
-atime:以访问天数查找,正负整数同上
-mtime:以数据修改天数查找,正负整数同上
-amin:以访问分钟数查找,正负整数同上
-mmin:以数据修改分钟数查找,正负整数同上
-empty:查找空文件
-follow:如find命令遇到符号链接文件,就跟踪至链接所指向的文件中
-maxdepth:从指定目录开始向下的几层目录开始查找
-newer:查找在此文件修改之前所修改的所有文件
处理动作:
-print:输出到屏幕,不需要添加,默认输出到屏幕
-ls:以ls长文件的格式输出
-delete:将查找到的文件删除
-fls 文件路径:将查找到的文件以ls详细信息的格式输出到某个文件
-exec 命令 {} \; :将查找到的文件传递给shell命令进行处理,与此命令 (|xargs shell命令) 达到的目的相同
多个查找类型连接:
-a :在两个查找类型中间,表示和
-o :在两个查找类型中间,表示或
! :在查找类型前边,表示非,与查找条件相反
实例:
1.以结尾的文件名进行查找;
find /etc/ -name "
.conf"
2.以结尾的文件名(忽略大小写)进行查找;
find /etc/ -iname ".conf"
3.以两个名称为条件进行查找,符合其中一个名称即可;
find /etc/ -name "
.conf" -o -name ".txt"
4.配置正则表达式进行查找;
find . -regex ".
(.txt|.pdf)$"
5.否定条件查找;
find /etc/ ! -name ".conf"
6.根据文件类型查找,查找目录中的所有文件;
find /boot/ -type f
7.查找距当前目录的往深的两级目录中的文件;
find /etc/ -maxdepth 2 -type f
8.查找七天内被访问过的文件;
find /etc/ -type f -atime -7
9.查找七天前当天被访问过的文件;
find /etc/ -type f -atime 7
10.查找七天前所有时间内被访问过的文件;
find /etc/ -type f -atime +7
11.查找在修改此文件之前修改的所有文件;
find /etc/ -type f -newer /etc/fstab
12.根据文件大小进行查找,+5k代表大于5k、-5k代表小于5k、5k代表等于5k;
find /etc/ -type f -size +5k
13.查找空文件并且将其删除,三种方式;
find /etc/ -empty -delete
find /etc/ -empty -exec rm -rf {} \;
find /etc/ -empty | xargs rm -rf
14.根据文件权限查找文件;
find /etc/ -type f -perm 777
15.查找出目录中的后缀为php,并且权限不是755的文件;
find /etc/ -type f -a -name "
.php" -a ! -perm 755
16.查找出目录中的日志文件,并且其存在时间超过30天,将其复制到/tmp目录下;
find /var/log/ -name "*.log" -a -mtime +30 -exec cp -rf {} /tmp/ \;