find命令

命令功能:在指定的目录层次结构中查找文件,相比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


你可能感兴趣的:(Linux命令基础)