感谢支持
我们一直在努力

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

2、按权限


还是刚才这组文件


查找权限为664的文件


Linux认证:RH033 Unit 13 Finding and Processing Files


查找属组有些权限的文件


Linux认证:RH033 Unit 13 Finding and Processing Files


查找其他用户有执行权限的文件


Linux认证:RH033 Unit 13 Finding and Processing Files


查找任意位有写权限的文件


Linux认证:RH033 Unit 13 Finding and Processing Files

3、按大小


有三个文件,大小分别为1M、2M、3M


Linux认证:RH033 Unit 13 Finding and Processing Files


查找大小为2M的文件


Linux认证:RH033 Unit 13 Finding and Processing Files


查找小于2M的文件


Linux认证:RH033 Unit 13 Finding and Processing Files


查找大于2M的文件


Linux认证:RH033 Unit 13 Finding and Processing Files

4、按时间


有3种选项


atime:被访问的时间


mtime:内容被更改的时间


ctime:内容以及元数据被更改的时间


参数后面需要附加一个条件,1个整数,单位为天


查找/var/log/下面5天之内任意数据被改动过的文件


Linux认证:RH033 Unit 13 Finding and Processing Files


查找/var/log/下面5天内未被改动过的文件


Linux认证:RH033 Unit 13 Finding and Processing Files


按各种条件找来找去,到底有什么用呢,和实际结合起来,又有很多种用法,这里需要两个参数


ok和exec


假设,一个目录下,用三个文件作测试


Linux认证:RH033 Unit 13 Finding and Processing Files


1、为了文件安全,不希望其他人对文件有写权限,但是又不想一个一个的输入修改权限的命令,就可以用find配合执行参数来帮忙


Linux认证:RH033 Unit 13 Finding and Processing Files


解释一下,首先先按权限找出other上有写权限的文件,然后查找结果被-exec参数传给后面的chmod命令,执行删除写权限的操作,两条命令一次执行完毕,省时省力


“{}”表示调用-exec前的find命令查找出来的所有文件


“ \;”前面有个空格(空格斜杠分号)为该命令的固定语法格式


-ok和-exec在命令的执行结果上没有区别,但是在执行过程中-ok会询问用户是否继续执行后面的命令,而-exec不询问直接执行


2、希望把当前目录下大于1M的文件进行压缩以节省空间


Linux认证:RH033 Unit 13 Finding and Processing Files


Orz,真强,bzip2竟然把3M的文件压缩成了8K!!!

赞(0) 打赏
转载请注明出处:服务器评测 » Linux认证:RH033 Unit 13 Finding and Processing Files
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏