在linux下面搜索文件的功能非常强大。比较常用的有以下四种:
which:查看可执行文件的位置
whereis:查看文件的位置
locate:从数据库中查看文件位置
find:搜索硬盘查询文件
1、which的使用
which [文件名]
说明:它主要搜索PATH环境变量中的路径,所以主要还是查询可执行文件
2、whereis的使用
whereis [-bmsu] [目录名称]
-b:只找二进制文件
-m:只找在说明文件manual路径下的文件
-s:只找source源文件
-u:没有说明文档的文件!
说明:whereis查询速度非常快,因为它是查找数据库的,linux系统会将系统内的所有文件都记录在一个数据库文件中,whereis和locate都是基于此文件进行查询的,所以在数据库更新期间发生的删除和添加文件都会对查询造成影响,使查询不太准确。基本上Linux每天会针对Linux主机执行updatedb(针对该数据库文件)动作,您可以在/etc/cron.weekly/slocate.cron文件中找到相关的机制。当然,也可以直接使用/usr/bin/updatedb来更新数据库文件
3、locate的使用
locate [目录名称]
说明:locate的查询速度非常快,这是因为locate也是从已经建立的数据库/var/lib/slocate中查找的,不需要访问磁盘。但是这也存在一个限制,即数据库如果更新不及时,那么在两次更新之间新建的文件不能找到。
4、find的使用
find [路径] [参数]
a. 时间:
-atime n:将n*24小时内被存取过的文件列出来
-ctime n:将n*24小时内被改变、新增的文件或目录列出来
-mtime n:将n*24小时内被修改过的文件列出来
-newer file :把比file还要新的文件列出来
b.使用名称:
-gid n:寻找群组ID为n的文件
-group name :寻找群组名称为name的文件
-uid n:寻找拥有者ID为n的文件
-user name :寻找用户名称为name的文件
-name file :寻找文件名为file的文件名称(可以使用通配符)
-type type :寻找文件属性为type的文件,type包含了b, c, d, p, l, s,
这些与前一章的属性相同。例如l为Link而d为目录
说明:find查找文件时是搜索磁盘来查找的,非常耗时,所以一般情况下使用whereis和locate代替,不过find的参数非常强大,所以查找的效果会很好。
阅读(1954) | 评论(0) | 转发(0) |