find命令的用法:

 定义:在本地文件系统中执行实时搜索,查找符合命令行参数条件的文件。

 使用格式:find 目标文件 匹配选项 匹配参数

 find的第一个参数是要搜索的目录,若省略了目录参数,则find将从当前目录中开始搜索,并在任何子目录中查找匹配项。

 find可以提供许多选项来准确的描述应查找的文件类型,可以根据文件名、文件大小、最近修改时间戳和其他文件特性的任意组合进行搜索。

 eg

find / -name sshd_config     在根目录和所有子目录中搜索名为sshd_config的文件

find / -name ‘*pass*’     /etc目录中搜索名称中任意位置包含pass的文件

find / -iname ‘*messages*’  -i表示忽略大小写

find可以根据所有权限来搜索文件,此时可使用的选项有-user-group-uid-gid

 eg

  find / /home/student –user student /home/student目录下查找student用户所拥有的文件

  find / /home/student –group student /home/student目录下搜索student组所拥有的文件

  find / -user root –group mail

-perm选项用于查找具有特定权限集的文件

  权限前面可以有/-符号,带有/的数字权限将匹配文件的用户、组、其他人权限集中的至少一位,与/-一起使用时,0值类似于通配符,表示“至少无任何内容的权限”

eg

 find /home –perm 644 匹配用户具有读写权限,组成员拥有读权限,其他人具有读权限

 find /home –perm -724 匹配用户至少有读写执行权限,组成员至少写权限,其他人至少有读权限

 find –perm -004

find 命令可以查找与指定的大小相符的文件,通过-size选项加上数字值与单位来指定

  n :等于n的大小

  +n:大于n的大小

  -n :小于n的大小

与size使用的单位有:千字节  M 兆字节  G 千兆字节

 eg

  find –size 10M    在当前目录下搜索大小为10M的文件

  find –size +10M   在当前目录下搜索大小大于10M的文件

  find –size -10M   在当前目录下搜索大小小于10M的文件

 -size 单位修饰符将所有内容向上取整为一个单位,如find-size 1M将显示小于1MB的文件,因为它将所有文件都向上取整为1MB

-type 选项将搜索范围限制为给定的文件类型,类型有

 f:普通文件

 d:目录

 l:软链接(符号链接)

 b:块设备

 eg

   find /etc –type f   搜索/etc 目录下的所有普通文件

   find /etc –type d   搜索/etc文件夹中的所有目录

   find /etc -type l   搜索/etc目录中的所有符号链接

   find /dev –type b   搜索/dev目录中的所有设备的列表

-mmin 选项加上以分钟表示的时间,将搜索内容正好在过去所给时间更改的所有文件,

  类似的还有-amin-cmin

  m表示修改modifymin表示分钟,a表示访问,c表示创建

-mtime 选项以天为单位,类似的有-ctime-atime

 eg

   find / -mmin 120  将搜索离修改时间刚好是120分钟的文件

   find / -mmin +200  将查找在200分钟以前更改的所有文件

    find / -mmin -150  将搜索离修改时间少于150分钟的所有文件

-links 选项加上数字将查找具有特定硬链接数的所有文件,苏子前面带有+修饰符将查找硬链接数超过所给数目的文件,若数字前面带有~修饰符,则搜索将限制为硬链接数小于所给数目的所有文件。

 eg

   find / -type f –links +1  根目录下搜索硬链接数大于1的所有普通文件

复杂的用法:可以将搜索的文件执行另外的操作

 eg

  find /usr/bin –size +50K –exec cp {}/tmp/bin \; 搜索/usr/bin/目录下大小为50K的所有文件,并将其复    制到/tmp/bin目录下

 find /usr/bin –type f –exec rm –rf {}\;  搜索/usr/bin目录下的所有普通文件,并对它执行删除操作