在Linux系统中,我们有时候会需要寻找一个文件完整的路径,这时我们可以使用如下几种方法。

1. which

which命令用于查找并显示给定命令的绝对路径,环境变量PATH保存了查找命令时要搜索的目录。不过which有可能会不显示当前用户没有权限执行的软件。


2. locate

查找文档。 与find功能类似,但是有所不同。locate指令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎指定条件的文档或目录。直接 locate 文件名,eg: locate passwd 但与find 不同: find 是去硬盘找.locate 只在/var/lib/mlocate/mlocate.db资料库中找,所以locate的速度比find快,但是也因此locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 updatedb。数据库/var/lib/mlocate/mlocate.db记录了创建数据库时文件系统上的所有文件数据,也就是整个/下的文件。 但是,这个东西还是有使用上的限制呦!什麼限制呢?就是因为他是经由资料库来搜寻的,而资料库的建立预设是在每天执行一次,所以当您新建立起来的档案, 却还在资料库更新之前搜寻该档案,那麼 locate 会告诉您『找不到!因为必须要更新资料库!

3. whereis

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

4. find

find是功能最强大的命令,使用它可以找到任何你想要找的文件。

5. type

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。