linux搜索系统

来源:互联网 发布:python代码过长换行 编辑:程序博客网 时间:2024/05/17 02:49

linux有着异常强大的搜索系统,由于linux一般都充当服务器,因此,在linu

的文件系统中可能会存着大量的文件,我们可能常常忘了某个文件放在

哪里,这个时候,linux的搜索系统便发生了巨大的作用,它的强大和方便也给

我们留下了深刻的印象。

这里,介绍一下linux搜索系统的几个命令

1.      which(寻找可执行文件)

格式:which [-a] command

这个命令是根据“PATH”环境变量所规范的路径,来搜索“执行文件”的文件名。

默认情况下,只搜索到第一个匹配的文件就停止搜索,当使用”-a”参数时,会

列出所有可以找到的同名执行文件。

 

2.      whereis(在数据库中查找二进制、源代码和帮助手册文件)

格式:whereis [-bmsu] 文件或者目录名

-b:只查找二进制文件

-m:只找在帮助文件manual路径下的文件

-s:只找源文件

-u:没有帮助文件的文件

默认情况下,whereis会在数据库中查找所有上述的文件,当限定参数时,便只查找限定类型的文件。Linux系统会将系统内的所有文件都记录在一个数据库文件里(/var/lib/slocate),当我们使用whereis 或者locate时,就会以此数据库文件的内容为准。

注意:由于该数据库默认是每天更新一次,因此,新建立的文件可能在数据库中是搜索不到的,这时候,可以手动调用/usr/bin/updatedb命令来更新数据库文件。

 

3.locate(查找数据库中的文件)

格式:locate filename

Locate命令也是从数据库中查找文件,因此,它也和whereis一样,存在着可能搜索不到新建立的文件的问题,与whereis不同的时,它能搜索到所有类型的文件,而不仅仅是二进制、源代码以及帮助手册文件。并且,它只需要输入文件名的一部分就可以了,并不需要输入完整的文件名。如查找.bashrc文件,我们可以使用locate shrc。同时,它还有一个比较强大的地方就是能够使用通配符。比如,我想查找所有日志文件,就可以使用locate \*.log,注意,这个地方的*要使用’\’来转义,否则,只会查找当前目录中的文件。

 

4.find

   格式:find [PATH] [OPTION] [ACTION]

   Find 是最强大的搜索命令,它可以通过指定参数从而通过各种条件来查找文件。比如,可能通过文件建立时间,文件拥有者,文件权限等等参数来查找符合条件的文件。具体的参数可以参考http://os.51cto.com/art/201109/293912.htm。

    但是,find命令的一个弊端是它很费时,因为它是直接搜索硬盘,而不像locate和whereis那样只需要搜索文件数据库就可以了,因此,一般的情况下我们不会使用这个命令。当然,不可否认的是它非常的强大,所以在有些时候还是很有用地。