Linux 之 搜索

locate - 文件名搜索命令

         用于查找文件

         格式为:locate 文件名

         该命令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎范本样式条件的文件或目录。

         因为该命令是直接在数据库内搜索(/var/lib/mlocate为locate所搜索的数据库,发型版本不同,文件名可能有所不同),而不是遍历整个硬盘,所以搜索速度较快。

         但由于数据库不是实时更新的,所以缺点是新建的文件会搜索不到,可使用updatedb命令来更新数据库。

         需要注意locate的配置文件/etc/updatedb.conf:

   

         PRUNE_BIND_MOUNTS 等于yes时候,下面三个规则全部生效,等于no时候,下面三个规则全不生效。

         PRUNEFS 不搜索的文件系统

         PRUNENAMES 不搜索的文件后缀

         PRUNEPATHS 不搜索的路径

 

whereis、which - 命令搜索命令

         whereis

         格式为:whereis,命令名   

         用于查找命令所在的路径和其帮助文档所在路径,其只能搜索系统命令,而不能用户自己创建的文件。

        

         which

         格式为:which 文件名

         which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

                 

        

find - 文件搜索命令

         格式为:find [搜索范围] [搜索条件]             

         find命令支持使用通配符

                   *       匹配任意内容

                   ?     匹配任意一个字符

                   []       匹配任意一个中括号内的字符

 

         搜索条件:

                   -name name    查找名称为name的文件

                   -iname name   查找名称为name的文件,不区分大小写

                   -user root         查找所有者为root的文件

                   -nouser    搜索没有所有者的文件

                   -mtime     修改文件内容时间

                   -ctime       修改文件属性时间

                   -atime      文件访问时间

                            -[x]time -10      十天内

                            -[x]time 10        十天当天

                            -[x]time +10     十天前

                   -size

                            -size -25k          小于25k的文件

                            -size 25k            等于25k的文件

                            -size +25k                   大于25k的文件

                   -inum 262242  查找i节点为262242的文件

                   -exec 命令2 {}\;      跟在命令1之后,命令1的执行结果交给命令2来执行

         find命令的条件可以使用-a(and)和-o(or)来逻辑连接两个条件来搜索文件

grep - 字符串搜索命令

         格式为:grep [选项] 字符串 文件名

         在文件中匹配复合条件的字符串

         选项:

                   -i       忽略大小写

                   -v      排除指定字符串

 

find和grep的区别

         find命令:在系统当中搜索符合条件的文件,如果需要匹配,使用通配符匹配,通配符是完全匹配

         grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配

         所以我们要搜索文件名时,使用find+通配符,但当我们搜索文件内容时,使用grep+正则表达式

 

整理自:慕课网(www.imooc.com)

posted @ 2015-07-13 16:18  li-xyz  阅读(265)  评论(0编辑  收藏  举报