find命令:用于查找的命令,多数用来根据文件的属性进行查找。
find语法:find pathname -options [-print]
命令 路径名称 选项 输出(可选)
pathname:find命令所查找的目录路径。例如用 . 表示当前目录,用 / 来表示系统根目录。
-print:find命令将匹配的文件输出到标准输出(屏幕),此为默认项,因此-print为可选。
选项:
- -name根据文件名查找文件。例如查找/etc目录及其子目录下的所有扩展名为conf的文件使用 find /etc -name "*.conf",如下图:
有时候我们想让被查找的扩展名高亮显示可以在后面加上 | grep conf。在这里 | 表示管道符,也就是说前面的输出就是关道福后面的输入参数,接着使用grep命令对其结果进行再次过滤。conf是被过滤的结果,默认使用红色显示,如下图: - -perm根据文件权限来查找文件,例如:find . -perm 755表示在当前目录下查找所有者权限为读(4)写(2)执行(1),在所在组是读(4)执行(1)以及其他组为读(4)执行(1)的权限的文件。
执行find /etc/yum -perm 755会查找满足条件的文件及目录,如下图:
进入该目录下通过ll命令查看vars文件的权限,ll -d vars 如下图:
所有则权限(rwx,7),所在组权限(r-x,5),其他组(r-x,5) - -prune使find命令不在当前指定的目录中查找(排除)
在root目录下创建test目录,进入test目录后创建bin目录,然后在test目录下创建a.txt和b.txt两个文件,然后进入bin目录下再创建a.txt接着在root目录下执行[root@localhost ~]# find test -path "test/bin" -prune -o -print
将会排除test/bin的内容,如下图:
-path 表示要排除的目录为 test/bin - -user 表示要查找某一用户的文件,例如:find /home -user test 查找home目录下test用户的所有文件
- -nouser 表示要查找没有用户的文件,这些文件没有主人。也许创建这些文件的主人已经被管理员删掉了。
- -group表示查找属于某一用户组的文件,-nogroup表示查找没有属于任何用户组的文件信息,例如:
find / -group nginx 从根目录下开始查找属于nginx用户组的文件信息
find / -nogroup 从根目录下查找没有属于任何用户组的文件信息 - -mtime:表示在某一时间范围内创建的文件。 find /usr/local/nginx -mtime -1表示查找/usr/local/nginx 目录当中一天之内创建的文件,如下图:
- 查找3天之前的信息: find /usr/local -mtime +3
- 查找某一类型的文件,使用type选项。例如查找当前目录下的所有目录使用 find ./ -type d
查找非目录的内容 find ./ ! -type d - 查找指定大小的文件,例如 find ./ -size +1000000c表示在当前目录下查找大于1兆的文件(size后面数字的单位为 字节)