命令功能:在指定的目录层次结构中查找文件,相比whereis和locate,find查找速度比较慢,find是查找整个文件系统。find命令功能非常强大,可以设置很多限制条件进行搜索;使用find命令指定查找的范围越小越好,条件越精确效率越高
命令格式:find path [选项]
常用选项:
文件属性:
-user name 查找属主为name的文件
-group name 查找属组为name的文件
-name name 查找文件名为name的文件
-nogroup 查找不属于任意组的文件
-nouser 查找不属于任意用户的文件
-perm mode 按文件权限查找
-inum num 查找节点数为num的文件
-size +-num 按文件大小查找,默认是块,可选c/k/M/G ,+表示大于num,-表示小于num
文件类型:
-type filetype 查找类型为filetype的文件
b 块文件
c 字符文件
d 目录文件
f 普通文件
l 符号链接文件
p 管道文件
时间单位:
-atime +-n +表示最近n天前访问过的文件,-表示最近n天内访问过的文件
-mtime +-n +表示最近n天前修改过的文件,-表示最近n天内修改过的文件
-ctime +-n +表示最近n天前改变过的文件,-表示最近n天内改变过的文件
-amin +-n +表示最近n分钟前访问过的文件,-表示最近n分钟内访问过的文件
-mmin +-n +表示最近n分钟前修改过的文件,-表示最近n分钟内修改过的文件
-cmin +-n +表示最近n分钟前改变过的文件,-表示最近n分钟内改变过的文件
-a and逻辑与
-o or逻辑或
-exec COMMAND {} \; 此为固定格式,找到文件后执行COMMAND操作,{} 表示查找到的结果,\转义字符,表示;本身,\;一起表示整条语句结束。
-ok 用法同exec,不同之处在于exec不询问直接执行。
举例:
查找/etc/目录下属主为jboss的文件
find /etc/ -user jboss
# [root@localhost tmp]# find /etc/ -user jboss
# /etc/jbossas
# /etc/jbossas/jbossas.conf
# /etc/jbossas/standalone
# /etc/jbossas/standalone/mgmt-groups.properties
# ...
查找/var/log/目录下以.log结尾的文件
find /var/log/ -name "*.log"
# [root@localhost ~]# find /var/log/ -name "*.log"
# /var/log/anaconda.storage.log
# /var/log/yum.log
# /var/log/anaconda.program.log
# /var/log/anaconda.yum.log
# /var/log/anaconda.log
# /var/log/rhsm/rhsm.log
# ...
查找/tmp/目录下文件权限为rwxrw-rw-的文件
fin /tmp/ -perm 766
# [root@localhost tmp]# find /tmp -perm 766
# /tmp/test
# /tmp/test1.txt
# [root@localhost tmp]# ls -ld /tmp/test1.txt
# drwxrw-rw-. 2 root root 4096 Nov 7 14:18 /tmp/test
# -rwxrw-rw-. 1 root root 60 Nov 5 16:09 /tmp/test1.txt
查找/tmp/目录下以con开头的目录文件
# [root@localhost tmp]# find /tmp -type d -name "con*"
# /tmp/conf
# /tmp/conf.d
# [root@localhost tmp]# ls -ld /tmp/conf /tmp/conf.d
# drwxr-xr-x. 2 root root 4096 Nov 4 18:08 /tmp/conf
# drwxr-xr-x. 2 root root 4096 Nov 4 18:08 /tmp/conf.d
查找/tmp/目录下,文件大小大于1KB的文件
find /tmp/ -size +1k
# [root@localhost tmp]# find /tmp/ -size +1k
# /tmp/
# /tmp/test
# /tmp/ping.txt
# ...
# [root@localhost tmp]# ls -lh /tmp/ping.txt
# -rw-r--r--. 1 root root 1.7K Nov 6 15:13 /tmp/ping.txt
查找/tmp/下,名为ping的文件,并文件显示详细信息
find /tmp/ -name ping -exec ls -l {} \;
# [root@localhost tmp]# find /tmp/ -name ping -exec ls -l {} \;
# -rw-r--r--. 1 root root 1697 Nov 6 15:13 /tmp/ping
查找/tmp/下,文件名为ping或者权限为-rwxrw-rw-的文件
find /tmp/ -name ping -o -perm 766
# [root@localhost tmp]# find /tmp -name ping -o -perm 766
# /tmp/test
# /tmp/ping
# /tmp/test1.txt
查找/etc/下1天内被修改过的文件
find /etc/ -mtime -1
# [root@localhost tmp]# find /etc/ -mtime -1
# /etc/
# /etc/shadow1