未加星标

文件的查找工具find

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

有的时候我们需要快速查找一些文件,但是我们却不知道这个文件在哪的时候,就急切的需要一个工具来帮助我们,这时候find就诞生了。Find能实现精确查找,虽然速度略慢,但是并不妨碍我们使用,下面就介绍一下find的使用方法。

(一) 基于时间戳的查找

假如需要查看七天前的文件,但是总不能一一的去看时间查找,这点和windows不一样,windows可能是默认的按时间先后顺序排列的,所以在这里我们就要基于命令去查找了。以天为单位的选项分别有atime,mtime,ctime.

分别是访问时间,文件数据修改时间,文件元数据修改时间。下面举例说明,以便让大家更好的明白。

Eg: 查询/app目录下五天以内被访问的文件


文件的查找工具find
解释:-atime 就是访问时间,-5就是指0到5天以内的,-ls就是长列出所查到的文件,这里需要说明一下时间的问题。如果是按时间或者天数来算的话,-5是[0,5),意思就是大于等于0 且小于5,+5是[6,无穷),意思就是大于等于6,直接就一个5的话,就是[5,6),意思就是大于等于5且小于6.

(二) 基于文件用户名查找

假如你想找user是joe的文件,只需选项-user.

Eg:查找/app下所属人为liubei的文件


文件的查找工具find

解释:/app/* 就是查找/app下的文件,不包括app目录本身,小编之前犯了错误,把目录本身也截取下来了,在这里提醒广大用户,不要犯同样的错误,但是如果你想要把目录也一起算的话就把/*去掉就可以了。-user就是基于用户名查找。

(三) 基于文件大小查找

假如想查找文件大于1M的,只需选项-size

Eg:查/app下大于1M的文件

首先看一下app下的文件大小哦,这里文件大于1M的只有a1


文件的查找工具find

下面开始截取符合规定的文件


文件的查找工具find

解释:-size就是基于文件大小查找,+1M就是(1,无穷),意思就是大于1M的文件。

(四) 基于文件类型查找

假如想查找/app下的普通文件,只需选项-type f.

Eg:查找/app下的目录文件


文件的查找工具find

解释:-type就是基于类型查找,d就是目录的意思,f为普通文件,l符号链接文件,S套接字文件,b块设备文件,c字符设备文件。

(五) 基于文件权限查找

选项是-perm 权限

Eg:查找/app下有执行权限的文件


文件的查找工具find

解释:-perm就是 基于权限的查找,/111意思是ugo任意一位有执行权限就可以。

(六) 基于组名的查找

选项是 group 组名

Eg:查找/app下组名是liubei的文件


文件的查找工具find

解释:-group 就是基于组名的查找。

(七) 基于文件uid的查找

选项是-uid userid

Eg:查找/app uid为1004的文件


文件的查找工具find

(八) 基于文件名称的查找

选项是-name

Eg:查找/app下 文件名为a开头的文件


文件的查找工具find

解释:a*的意思就是以a开头 后面跟任意内容的文件。

(九) 基于没有所属人没有所属组的查找

假如一个文件所属人,所属组被删除了,但是想查找,就需要这个命令,-nouser -nogroup

Eg:查找没有所属组的文件


文件的查找工具find

Eg:查找没有所属人的文件


文件的查找工具find

解释:-nouser就是没有所属人,-nogroup就是没有所属组

下面给出一些平时的练习,以供参考。

1.查找/var目录下不属于root、lp、gdm的所有文件

解题方法:find /var -not \( -user root -o -user lp -o -user gdm \) -ls


文件的查找工具find

解题思路:-o就是或的意思,-a就是且的意思,-not就是非的意思。在这里使用了德摩根定理,如下:

(非 A) 或 (非 B) = 非(A 且 B)

(非 A) 且 (非 B) = 非(A 或 B)

所以查找不属于三个用户的文件就是不属于root,也不属于lp,也不属于gdm,所以用-not的话 ,括号里面就要用或的关系,才能保证三个条件都满足。

2.查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

解题方法:find / \( -nouser -o -nogroup \) -a -atime -7 ls


文件的查找工具find

解题思路 :使用-o就是或的关系,但是中间要用括号括起来,不然的话后面的-a连着的就只有 nogroup了,使用\是转义的意思,在这里不能直接识别括号,所以需要转义。

3.查找/etc目录下所有用户都没有写权限的文件

解题方法:find /etc ! -perm /222 ls


文件的查找工具find

解题思路:前面说过/111,这里/222意思和那个是大致一样的,意思就是任意一位有读权限就可以,前面加个!就是非的意思,这里使用德摩根定理,不会的同学可以看一下前面的。

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

主题: 数据行权广大删除
分页:12
转载请注明
本文标题:文件的查找工具find
本站链接:http://www.codesec.net/view/561364.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(22)