Linux系统中一切皆文件,系统当中有成千上万的文件,每一个文件我们不可能都记下他的路径,有时候我们可能要使用到一个文件,却只知道他的名字,而不知道他在哪里,我们就需要使用一个工具找到他,这时我们就可是使用find命令。
下面将我在马哥教育的学习当中学到的find常用方法介绍出来
find 精确查找,实时查找,而且可以指定查找路径,但缺点是速度慢
find [查找路径(可以有多个)] [查找条件][如何处理]
1)查找条件
-name “filename” 通过文件名字来查找
-iname “filename”通过文件名字来查找,不区分大小写
-regex 支持正则表达式查找
-iregex 支持正则表达式查找,不区分大小写
-user 根据属主查找
-group 根据属组查找
-uid 根据用户ID查找
-gid 根据组ID查找
-type 根据文件类型
-type f 普通文件
d 目录
l 链接
b 特殊文件,块设备
c 字符设备文件
P 管道文件
S 套接口文件
-size 根据大小查找,默认为字节
2m 查找出1m-2m,相差一个单位内的文件
+2m 大于2m的文件
-2m 小于2m的文件 不包含1m到2m的文件
根据时间查找 支持减
-atime 根据访问时间,单位天
-mtime 根据修改时间,单位天
-ctime 根据文件属性更改时间,单位天
-amin 根据访问时间,单位分钟
-mmin 根据修改时间,单位分钟
-cmin 根据文件属性更改的时间,单位分钟
-perm 根据权限查找
-perm mode 精确匹配
/mode 有任何一个数字所代表的权限即可
-mode 全部比配数字所代表的权限的那一位
2)如何处理
-exec 处理命令 {} \;不提醒用户确认
-ok 处理命令 {} \; 提醒用户确认
最好的方法是通过管道来实现
find | xargs command 对find找到的结果执行命令
find支持多命令的查询
-a 并
-o 或
! 非
举例:
1.#find /etc -name rpc
查找etc下名字为rpc的文件
2.#find /etc -iname rpc
查找etc下不论大小写名字为rpc的文件
3.#find /etc -regex r.*
查找etc下r开头的文件
4.#find /etc -iregex r.*
查找etc下不论大小R开头的文件
5.#find /etc -user redhat
查找etc下属主为redhat的文件
6.#find /etc -group redhat
查找etc下属组为redhat的文件
7.#find /etc -uid 503
查找etc下属主id为503的文件
8.#find /etc -gid 503
查找etc下属组id为503的文件
9.#find /etc -type f
查找etc下的普通文件
10.#find /etc -size 2k
查找etc下1k-2k之间的文件
11.#find /etc -size -2k
查找etc下小于1k的文件
12.#find /etc -size +2k
查找etc下大与2k的文件
13.#find /etc -atime 2
查找2天内访问过的文件
14.#find /etc -atime -2
查找两天前被访问过的文件
15.#find /etc -perm 666
查找etc下权限为666的文件
16.#find /etc -perm /666
查找etc下任何一位权限符合666的文件
17.#find /etc -user redhat -a -group redhat
查找etc下属主属组都为redhat的文件
18.# find /etc -user root | grep "^r.*"
查找etc下属主为root的文件,并将r开头的所有文件显示出来
19.#find /etc -name rpc -exac rm {} \;
查找etc下名为rpc的文件并删除
转载于:https://blog.51cto.com/7ings/907866