find命令
:find命令是一款文件查询定位工具,它可以精准的定位到我们想要查找文件的路径。
find
主要特性有:
1、精准查找
2、实时查找(在创建文件后能够find查找其所在路径,不同于locate)
3、查找速度稍慢
find用法
:
find [options] [查找路径] [查找名称] [执行条件]
常用的查找条件有:
1、通过文件名查找
name
:通过名称查找
iname
:忽略文件名大小写查找
示例:查找/etc目录下passwd文件
find /etc -name "passwd"
find /etc -iname "PASSWD"
(都能查找出passwd文件所在路径)
2、通过从属关系查找
-user
:通过文件属主查找
-group
:通过文件属组查找
-uid
:通过uid查找
-gid
:通过gid查找
示例:
find /data -user xiaomei:查找/data目录下文件属主为xiaomei文件的所在位置
find /data -group xiaomei:查找/data目录下文件属组为xiaomei文件的所在位置
find /data -uid 0:查找/data目录下文件属主uid为0文件所在位置
find /data -gid 0:查找/data目录下文件属组gid为0文件所在文职
3、通过文件权限定位
-perm mode
:精确权限匹配
-perm /mode
:任何一类u、g、o用户权限中有任何一位r、w、x权限即满足条件
-perm -mode
:任何一类u、g、o用户权限必须同时满足指定r、w、x的权限
示例:
find /data -perm 222:表示文件的属主、属组和其它用户对文件只具有“写”权限
find /data -perm /222:表示文件的属主、属组和其它用户中至少一类用户满足“写”权限即可
find /data -perm /222:表示文件的属主、属组和其它用户必须都有“写”权限
4、通过文件类型定位
-type TYPE
-d:查找目录文件
-f:查找普通文件
-b:查找块设备文件
-c:查找字符设备文件
-l:查找符号链接文件
-p:查找管道文件
-s:查找套接文件
5、通过时间戳匹配
通过访问时间atime
`-atime [+ | -]n`
`-atime n`:(-n-1,n]
-atime 7:表示在前8天到第7天访问过的文件,第8天不算,以小时来算就是(192,168]之间被访问过的文件
`-atime -n`:[0,-n)
`-atime +n`:(-n,∞)
这里为了能够很好的理解,把n当做负数,实际上“天”是没有负数的
通过数据更改时间mtime
`-mtime [+ | -]n`
`-mtime n`:-n-1 < -n <= -n
`-mtime -n`:[0,-n)
`-mtime +n`:(-n,∞)
通过元数据更改时间mtime
`-ctime [+ | -]n`
`-ctime n`:-n-1 < -n <= -n
`-ctime -n`:[0,-n)
`-ctime +n`:(-n,∞)
6、通过文件大小匹配
-size [+ | -]n
`-size n`:n-1 < x <= n (n-1,n)
`-size +n`:(n,∞)
`-size -n`:[0,n-1]
例如:以10K来比较(-size 10K表示大于9K小于等于10K就符合)
(-size +10K表示大于10K就符合)
(-szie -10K表示大于0小于等于9K就符合)
常用逻辑关系有:
-a:逻辑与
例如:find /data -user root -a -group root(表示属主和属组为root的文件)
-o:逻辑或
例如:find /data -user root -0 -group root(表示属主或属组为root的文件)
-not/!:取反
例如:find /data -not -user root -a -not -group root(表示属主和属组都不是root的文件)
处理动作有:
ls:这里的ls实际上等于ls -l
delete:删除查找出的文件
-fls /path:将查找出来的文件以长格式保存至其它文件中
-ok command {} ;\:{}表示前面命令查找出来的结果,;\为固定格式,使用-ok处理文件会有提示信息(例如:find /etc -name "passwd" -ok delete {} ;\将查找出来的passwd文件删除,并提示)
-exec command {} ;\:使用-exec处理文件不会有提示信息(例如:find /etc -name "passwd" -ok delete {} ;\将查找出来的passwd文件删除,并不提示)
以上则为find命令常见是使用方法