Linux认证:RH033 Unit 13 Finding and Processing Files

locate:用来在预先建立好的文件索引数据库中查找文件,所以必须先建立或更新索引数据库

updatedb用来生成或更新所以数据库

用locate并不只是查找某一个文件,而是会将所有路径下的相关信息全部列出,但是locate只能显示出索引数据库中存在的文件,假如当前某个文件被删除或又新建了一个文件,而没有及时更新索引库,就会导致查找的结果与实际不符

locate 关键字

查找于指定关键字有关的所有文件或目录

用locate查询文件速度很快,因为不需要遍历目录或磁盘,直接读取索引数据库,但是查找结果不精确,实际上反而降低了查找效率,所以一般不推荐用locate

find:精确查找,命令后可跟路径或关键字,不指定路径则默认在当前目录下查找, 实时查找,不读取数据库,速度比locate慢一些,但查找的精准度很高,所以也是最常用的文件查找工具

使用find时,通常除了指定关键字,还会附带一些条件参数,以使查找结果更符合我们的需求,比如需要查找/etc路径下名称为passwd的文件就需要-name这个条件参数

Linux认证:RH033 Unit 13 Finding and Processing Files

需要说明的是,默认情况下,linux系统是区分大小写的,所以-name也是区分大小写的,如果查找Passwd就肯定找不到了,如果我们在查找的时候不确定文件名的大小写,就需要-i参数,忽略大小写

不过这样查找文件有时会出问题,因为/etc属于系统路径,有很严格的权限限制,如果换作普通用户去执行上面的命令就会报很多错误

Linux认证:RH033 Unit 13 Finding and Processing Files

日常维护过程中不会总是用root进行操作的,更多的时候还是以普通用户身份进行,所以在使用find命令时,权限问题是必须要考虑的

find的使用实际上不仅仅只是这么简单,有很多种用法

1、按属性

现在有这么一组文件

Linux认证:RH033 Unit 13 Finding and Processing Files

查找属主为user2的文件

Linux认证:RH033 Unit 13 Finding and Processing Files

查找属组为root的文件

Linux认证:RH033 Unit 13 Finding and Processing Files

还可以和一些逻辑操作符结合使用

查找属主为user1并且属组为user2的文件

Linux认证:RH033 Unit 13 Finding and Processing Files

查找属主为root但属组不为root的文件

Linux认证:RH033 Unit 13 Finding and Processing Files

查找属组为root或者是user2的文件

Linux认证:RH033 Unit 13 Finding and Processing Files

相关推荐