📜  如何在 linux 中查找命令的路径 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:52:25.103000             🧑  作者: Mango

如何在 Linux 中查找命令的路径 - Shell/Bash

在 Linux 中,我们经常需要执行各种命令来完成各种任务。但是,如果我们不知道某个命令的路径,就不能直接执行它。为了解决这个问题,我们需要知道如何在 Linux 中查找命令的路径。本文将介绍在 Shell/Bash 下查找命令路径的几种方法。

使用 which 命令

which 命令可以用来查找一个命令在系统中的路径。which 命令会在 PATH 路径中查找指定的命令,并将找到的路径输出到标准输出。

示例代码:

$ which ls
/bin/ls

在上面的例子中,我们使用 which 命令查找 ls 命令的路径,which 找到了 ls 命令的路径为 /bin/ls。

使用 whereis 命令

whereis 命令也可以用来查找命令的路径。不同于 which 命令,whereis 命令会在特定的目录下查找指定的命令。

示例代码:

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

在上面的例子中,我们使用 whereis 命令查找 ls 命令的路径,whereis 找到了 ls 命令的路径分别在 /bin/ls 和 /usr/share/man/man1/ls.1.gz。

需要注意的是,whereis 命令只能用来查找二进制文件、源代码和帮助文档等标准文档类型。

使用 locate 命令

locate 命令可以用来查找指定目录下的文件名。查找的速度非常快,因为 Linux 会建立一个包含所有文件名的缓存数据库。但是,这个缓存数据库不是实时更新的,可能会导致查找结果不准确。

示例代码:

$ locate ls
/bin/ls
/usr/bin/ls
/usr/share/man/man1/ls.1.gz

在上面的例子中,我们使用 locate 命令查找文件名中包含 ls 的文件路径,locate 找到了 ls 命令的路径分别在 /bin/ls、/usr/bin/ls 和 /usr/share/man/man1/ls.1.gz。

需要注意的是,如果要使用 locate 命令,需要首先使用 updatedb 命令来更新缓存数据库。更新缓存数据库需要一些时间,但一般情况下不会太长。

总结

在 Shell/Bash 下查找命令路径的方法有很多种。在本文中,我们介绍了其中的三种方法:which、whereis 和 locate。这些命令可以用来快速查找一个命令的路径,方便我们进行各种任务。