Linux的whereis与which命令区别是什么

whereiswhich都是Linux系统中用于查找文件的工具,但它们的目的和搜索方式有所不同。

  1. 搜索目的:
    • which命令主要用于查找用户输入的命令或可执行文件的绝对路径。它搜索的是用户的PATH环境变量中定义的目录,用于找到可以执行的命令。
    • whereis命令用于查找某个命令相关的二进制文件、源代码文件和手册页文件。它不仅搜索PATH环境变量中的目录,还搜索默认的源代码和手册页目录。
  2. 搜索范围:
    • which搜索的范围仅限于PATH环境变量中定义的目录,不包含其他系统目录。
    • whereis搜索的范围包括PATH环境变量中的目录,以及默认的源代码(通常是/usr/src/usr/local/src)和手册页(通常是/usr/share/man)目录。
  3. 输出结果:
    • which命令的输出结果是第一个匹配的命令路径,如果存在多个同名命令,它只显示第一个找到的。
    • whereis命令的输出结果包括所有找到的匹配文件,如果存在多个同名文件,它会列出所有找到的路径。
  4. 选项使用:
    • which命令的选项相对较少,常见的有-a--all用于显示所有匹配的路径。
    • whereis命令有更多的选项,如-b-s-m等,用于指定查找特定类型的文件。
  5. 更新数据库:
    • whereis命令在查找之前会使用updatedb命令来更新其数据库,这意味着它依赖于一个定期更新的数据库来查找文件。
    • which命令不依赖于外部数据库,它直接搜索PATH环境变量中的目录。
      总结来说,which主要用于快速查找可执行文件的路径,而whereis用于更全面地查找与命令相关的文件,包括源代码和手册页。在使用时,应根据需要查找的文件类型和详细程度选择合适的命令。

你可能感兴趣的:(Linux,linux,运维,服务器)