linux命令---常见且冷门系列(8)搜索不只有find

目录

which 命令

whereis命令

locate命令


linux常见的搜索类的指令有:

which find whereis locate 其中find比较著名我们就不在此探讨了。

which 命令


`which': Show the full path of commands
***************************************
 

从info来看我们就明白了,这个命令是从path中进行搜索。

我们做下面的演示:

which ls

which cd

 

我们手写一个自定义命令

 

 

 可以看到我们可以搜索到我们的指令了。

[root@localhost ~]# touch myls
[root@localhost ~]# which myls
/usr/bin/which: no myls in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin)
 

[root@localhost ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@localhost ~]# PATH=$PATH:/root
[root@localhost ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin:/root
[root@localhost ~]# whereis myls
myls: /root/myls
[root@localhost ~]#

whereis命令

NAME
       whereis  -  locate the binary, source, and manual page files for a com‐
       mand
 

这个命令也主要是找path 当然也回找一些标准的路径,不在path也回找,还有就是manual里的也回找。所以它比which找到的东西要多,看下面的例子:

 

 

locate命令

locate是从一个数据库中搜寻文件可以理解成windows里的搜索,可以搜索任何文件哦,这个数据库的位置? 以及如何更新这个数据库?

 从帮助信息可以查到 文件位置是:/var/lib/mlocate/mlocate.db

只能根据名字搜索

[root@localhost ~]# locate -h
Usage: locate [OPTION]... [PATTERN]...
Search for entries in a mlocate database.
NAME
       locate - find files by name
 

locate  reads  one or more databases prepared by updatedb(8) 

 locate  reads  one or more databases prepared by updatedb(8) 

------这句话说明locate是根据索引文件来搜索,也就是速度会快很多,但是可能会因为时间差导致查询的不准。我们可以手工updatedb一下。updatedb 默认一天更新一次。

下面通过一个完整的例子来演示一下locate 和 updatedb的

 从图片可以看出我们建立文件后不执行updatedb 直接使用locate 是查不到文件的。

我们update之后就可以看到查到文件了。所以我们除了find以外可以使用locate来查找文件。只是这个只能用名字查找。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部