Linux 搜索文件

1、whereis 只能查找可执行文件,联机帮助文档,源代码文件。在数据库/var/lib/mlocate/mlocate.db查找,因此效率很高。但是数据库mlocate.db不是实时更新的,而是一天更新一次(crontab定时执行updatedb),因此whereis查找会不准确。要想准确,需要执行一把updatedb,但是这又失去了高效性。

2、locate是whereis的加强版,增加一些选项,比如正则表达式。

3、which $PATH配置了可执行文件的目录,有多个目录,which在这些目录中查找可执行文件。

4、type,检查一个命令是否为shell内置命令,如果不是shell内置命令,通过type -p即可找到文件的路径。

5、find 遍历磁盘查找,因此很准确,但是效率很差。find的功能很强大。常用的功能如下:
  a、find ./ -name aaa 在当前目录查找名称为aaa的文件,忽略大小写使用-iname

  b、使用通配符,? 和 * ,?表示匹配一个字符,*表示匹配任意个字符。如:find ./ -iname '?a'

  注意:通配符与正则表达式不是一个概念,在正则表达式中,?表示出现0次或者1次,*表示出现任意多次。

  mysql查询支持通配符和正则表达式,在mysql中_匹配一个字符,%匹配任意个字符

  c、使用正则表达式,find ./ -regex '.*a',特别注意,正则表达式必须要匹配文件的完整路径,才算匹配成功。

原文地址:https://www.cnblogs.com/nzbbody/p/4457939.html