在linux中,文件查找可以用find命令及locate命令来实现。

    locate:属于非实时,模糊匹配的查找,查找时根据全系统文件数据库进行;

    find:属于实时查找,可以精确并且支持众多查找标准进行文件查找;查找时遍历目录中的所有文件完成查找,速度慢。

1、find命令的一般形式为:

    find 查找路径(pathname) 查找标准[-options] 处理运作[-print -exec...]

查找路径:默认为当前所在目录

查找标准:默认为指定路径下的所有文件

处理运作:默认为显示

2、命令参数:

    pathname:即所查找的目录路径

    -print :find命令将匹配的文件输出到标准输出(显示)

    -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为 'command' { } ;,注意{ }和;之间的空格。

    -ok : 和-exec的作用相同,只是以一种更为安全的模式来执行该参数所给出的shell命令,在执行每个命令之前,都会给出提示,让用户来确定是否执行。

3、find命令选项

    -name :对文件名作精确匹配

    -iname : 文件名匹配时不区分大小写

    -regex :基于正则表达式进行文件名匹配

    -user : 根据属主查找

    -group : 根据属组查找

    -uid UID: 根据UID查找

    -gid GID: 根据GID查找

    -nouser:查找没有属主的文件

    -nogroup: 查找没有属组的文件

    -type  以文件类型来查找  

         f: 普通文件

         d:目录文件 

         c:字符设备文件

         b:块设备文件

         l:符号链接文件

         p:管道文件

         s:套接字文件

例如:find . -type f -print        

即查找当前目录下的普通文件并输出到标注输出

    -size 以文件大小来查找

    -mtime # :  查找一段时间内被修改文件数据的文件(天数)

    -ctime #  :查找一段时间内被改变文件状态的时间(天数)

    -atime #  :查找一段时间内被访问的文件(天数)

    -mmin #  :(分钟)

    -cmin    

    -amin

后面要跟上+#,表示比这段时间以上

后面要跟上-#,表示在一段时间之内     (#代表数字)

例如   find . -name "*.conf" -mtime +5 -print { } ;

即:查找当前目录下文件名后缀为.conf且在5天以前被修改的文件

    -perm 按权限查找

    MODE   精确匹配权限

    /MODE:任意一位匹配即满足条件

    -MODE:文件权限能完全包含此MODE时才能符合条件

   例如:find . -type f -perm 644 -exec ls -l { } ;

即:查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件并显示出来