Linux学习---搜索命令

来源:互联网 发布:java做贪吃蛇游戏 编辑:程序博客网 时间:2024/04/30 12:57

1.文件搜索命令locate

基本命令格式:locate -[ir] keyboard

参数:

  • -i,忽略大小写。
  • -r,后方接正则表达式(regex的含义)。

locate搜索:locate寻找到数据是由已经创建的数据库/var/lib/mlocate里面的数据查到的。由于不用直接去硬盘中搜索数据,因此速度很快。这也就导致了当我们删除一个文件或者新建一个文件的时候,有时候会找不到这个文件,必须手动更新/var/lib/mlocate这个数据库。命令:updatedb

updatedb:根据/etc/updatedb.conf中的设置去查找系统硬盘中的文件名,并更新/var/lib/mlocate内的数据文件。

我们现在看一下/etc/updatedb.conf文件:

这里写图片描述

可以看到,开头的yes说明/etc/updatedb.conf是生效的,下面PRUNEPATHS属性,说明后方所跟的路径是不在建立数据文件的范围内的。比如你在/tmp/下面建立一个新文件,即使updatedb了,也是无法locate找到的。

2.命令搜索命令

何为命令搜索命令?上面我们将locate是用来搜索文件的,而这里我们说的whichis和whereis是用来搜索命令所在位置的。
命令格式:whereis -[bmsu] 文件或者目录名

参数:

  • -b:只查找二进制格式的文件
  • -m:只查找在说明文件manual路径下的文件
  • -s:只查找source源文件
  • -u:查找不在上述三个选项中的其他特殊文件

这里我们主要区别一下locate和whereis、whichis,其实命令搜索命令也是文件搜索命令,不过whereis后面跟的是完整的文件名,而locate后面跟的是keyword,是部分文件名。除了文件名的不同,其他和locate都一样,也是从/var/lib/mlocate中查找数据。

3.find命令

基本命令格式:

find 【path】【option】【action】

例如:

find / -name passwd

上面这条命令说的是在/目录下查找文件名为passwd的文件。

再例如:
find /home -user vayne

查找/home目录下用户vayne的所有文件。

find的特殊功能是可以在查询结果之后接一些额外动作,例如我们要将查到的结果通过ll列出来:

find / -name passwd -exec ls -l {}\;
当然后面跟的【option】参数也可以是一个正则表达式,例如包含httpd的文件,其正则:‘*httpd*’。

{}:代表find命令查询到的结果,反斜杠\用来转义分号;。

0 0
原创粉丝点击