一、find命令
find命令是最强大的文件搜索命令(工具)。
特点:实时递归查询文件或目录,功能最全面。
搜索方式:实时遍历指定的目录或子目录(也可从根目录下全全文件系统搜索)。
搜索范围:可指定任何查询路径,如果不指定路径,默认是当前路径。
搜索速度:较慢,因为它要遍历文件系统。
优势:支持各种条件搜索(如:文件/路径名称、大小、时间、权限、正则表达式或关键字搜索等)。
二、whereis命令
whereis命令主要用于查找二进制程序或命令、源码和帮助手册。
搜索范围:搜索可执行文件、源代码和man帮助手册。
搜索路径:预定义的系统目录(不支持搜索用户家目录)。
搜索速度:快
内容输出:显示程序名、bash路径、bash的man 帮助手册页路径 。
三、locate命令
locate命令是基于数据库的快速查找。
搜索方式:是查询预建的文件名数据库(/var/lib/mlcoate/mlcoate.db),如果没有该文件,需要安装一下mlocate。
速度:极快(基于数据库查询)。
缺点:查询结果有可能不是最新的(因为依赖数据库更新的时间,可使用updatedb命令进行更新)。
四、which命令
which命令用于查找$PATH中的可执行文件。
搜索范围:查找$PATH环境变量中配置过的可执行文件。
用途:可执行文件所在路径。
五、命令对照表
特性 | which | whereis | locate | find |
搜索目标 | 可执行文件 | 命令相关文件 | 所有文件 | 所有文件 |
原理 | PATH环境变量 | 预定义目录 | 文件数据库 | 实时遍历 |
实时性 | 实时 | 实时 | 非实时 | 实时 |
速度 | 极快 | 极快 | 最快 | 较慢 |
功能 | 简单 | 简单 | 中行 | 强大且复杂 |
使用场景 | 确定查找哪个命令 | 查找命令所有组件 | 快速搜索文件 | 精确条件搜索 |
总之一句话:简单查找命令用which/whereis,快速查文件用locate,精确复杂搜索用find。