find - search for files in a directory hierarchy 递归目录搜索文件
命令格式:find [PATH] [option] [action]
常用参数及说明:更多详细信息可以参考man find页面
1. 与时间相关的参数:-atime,-ctime,-mtime,这里以-mtime来说明
- -mtime n:n为数字,意义是在n天之前的(一天之内)被改动过内容的文件
- -mtime +n:列出在n天之前(不含n天本身)被改动过内容的文件
- -mtime -n:列出在n天之内(含n天本身)被改动过内容的文件
- -newer file:file为一个存在的文件,列出比file文件更新的文件
例子:
[root@rhel6164 ~]# find /var -mtime 4 #表示4天前的那一天修改过的文件
[root@rhel6164 ~]# find /var -mtime +4 #表示4天以前(大于等于5天)修改过的文件
[root@rhel6164 ~]# find /var -mtime -4 #表示4天以内修改过的文件
2. 与使用者或组名有关的参数:
- -uid n:n为数字,用户账号ID,UID
- -gid n:n为数字,组名ID,GID
- -user name:name为账号
- -group name:name为组名
- -nouser:不存在/etc/passwd里面的账号
- -nogroup:不存在/etc/group里面的组名
例子:
[root@rhel6164 ~]# find /var -user test #查找/var目录下属于test账号的文件
[root@rhel6164 ~]# find /var -nouser #查找owner不在/etc/passwd里面的文件
3. 与文件权限及名称有关的参数:
- -name filename:查找文件名为filename的文件
- -size[+-]SIZE:查找比SIZE要大(+)或者小(-)的文件,关于SIZE的表示,可以查看man find页面关于-size的说明
- -type TYPE:查找类型为TYPE的文件,关于TYPE的表示,可以查看man find页面关于-type的说明
- -perm mode:查找文件权限刚好等于mode的文件
- -perm +mode:查找文件权限大于mode的文件
- -perm -mode:查找文件权限小于mode的文件
例子:
[root@rhel6164 ~]# find /var -name test #查找/var/目录下文件名为test的文件
[root@rhel6164 ~]# find /var -perm 6000 #查找/var/目录下文件权限刚好是6000的文件
4. 额外的参数:
- -exec command:command为其他命令,-exec后面可以接额外的命令来处理搜索到的结果,所接的命令不支持别名(alias)
- -print:将结果打印到屏幕上,这个动作是默认的动作
例子:
[root@rhel6164 ~]# find /var -perm +7000 -exec ls -l {} \; #查找/var目录下权限大于7000的目录或文件,然后列出,反斜杠(backslash)是转义后面的分号(;)
[root@rhel6164 ~]# find /var -name '.?*' #查找/var目录下所有的隐藏文件
参考:鸟哥的Linux私房菜第三版