find详解
find目的:查找符合条件的文件
1 | 格式:find 目录名 选项 查找条件 |
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。
exec解释:-exec参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
{} 花括号代表前面find查找出来的文件名。
使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如ls或ls l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。
find工具
一、工作特点
优点
实时查找
准确查找,遍历整个目录下的所有文件
可以对查询到的文件进行指定动作,即查看,删除,移动等操作.
缺点
查询速度略慢
查询条件
查询条件由选项及测试条件组成:
【测试条件】
一、以文件名查找
1 | 1.-name pattern:以文件名查找 |
二、以文件从属关系查找
1 | 1.-user USERNAME:以用户名查找 |
三、以文件类型查找
1 | 1.-type TYPE:以文件类型查找 |
四、根据文件大小查找
1 | -size [+|-]SIZE : 以文件大小查询,大小包含K,M,G的单位 |
五、根据时间查找
1 | -atime [+|-]TIME : 以访问时间(天)查找 |
六、根据权限查找
1 | -perm MODE : 精确权限查找 |
七、 组合条件测试
1 | 与 : -a |
八、处理动作
1 | -print : 默认为打印,不需要添加,输出入屏幕 |
注意:find将查找到的文件路径一次性传递给后面的命令,但有很多的命令不能接受过长的参数,导致命令的执行失败,使用如下方式可避免此错误的发生:
1 | find /etc -type f | xargs -i COMMAND : -i参数是由find的结果传给xargs命令后,由-i指定结果代替符 |
##选项
一、指定查找目录范围
1 | -maxdepth NUM : 指定最多搜索目录层级到NUM层 |
二、查找空文件
1 | -empty : 查询内容为空的文件 |
三、排除符号连接
1 | -follow : 排除符号连接 |
Find与xagrs的命令结合
1 | Usage: |
示例
1 | 找出/tmp目录下属主为非root,且文件名包含fstab字符串的文件 |
摩根定律:
** !A -a !B = !(A -o B)**
** !A -o !B = !(A -a B)**