find与逻辑关系运算

20 篇文章 0 订阅

1. find命令的简单介绍

find命令是linux系统中的一项搜寻命令,其有着强大的功能,不经支持传统正则表达式,而且还支持通配符的使用。

[root@zhaoyang ~]# find [PATH] [option] [action]

以上是该命令的格式要求。

-uid n :n 为数字,这个数字是使用者的帐号 ID,亦即 UID 。
-gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID。
-user name :name 为使用者帐号名称。
-group name:name 为群组名称。
-nouser :寻找文件的拥有者不存在的文件。
-nogroup :寻找文件的拥有群组不存在的文件!

当然,以上只是find命令中使用较为简单明了的选项,大家可以通过简单的例子验证一下。
介绍完基本的选项,其实find命令还有较多复杂的选项,例如关于以文件大小进行搜索(-size)和以修改时间进行搜索(主要为-mtime)的选项,其设置的内容确实需要进一步的学习才能正确给出策略,也请各位进一步查询帮助文档学习,我们这次要进行研究的重点是其逻辑关系运算方面的运用。


2. find中逻辑关系的简单介绍

逻辑关系有三种

  • 与 -a
  • 或 -o
  • 非 -not,!

下面先给出各项的使用语法

find -user zy -a -group zy

查找用户名为zy并且所属组为zy的文件

find -user zy -o -user zhaoyang

查找用户名为zy或zhaoyang的文件

find -not user

查找用户名不是user的文件

3. 逻辑关系优先级别

上面都是一些单一的逻辑关系,已经给出其基本的用法,但有些时候,简单的逻辑关系很难筛选出我们所需要的结果,我们往往需要将逻辑运算符相结合,构成较复杂的运算。
说到复杂的组合运算,那么一定要注重运算的过程,也就是运算的优先级,只有了解了正确的优先级,才能给出正确的策略解决问题。

[root@localhost ~]# cd /app
[root@localhost app]# touch wenben1
[root@localhost app]# touch wenben2
[root@localhost app]# touch wenben3

如上我们在/app文件夹中创建出wenben1、wenben2、wenben3三个文件

[root@localhost app]#find -not -name wenben1 -a -name wenben2
./wenben2
[root@localhost app]# find -not \( -name wenben1 -a -name wenben2 \)
/app/.shiyan.swp
/app/.yuan.swp
/app/.wenben.swp
/app/.wenben.swo
/app/.shiyan.swo
/app/.shiyan.swn
/app/wenben1
/app/wenben2
/app/wenben3

我们都知道,()内的运算式优先级是最高到,但显然,上边两式得到的结果并不相同,在通过国际分析式子一,发现其先运算了-not,然后才运算了-a运算。

[root@localhost app]# find  -name wenben1 -a -name wenben2 -o -name wenben3
./wenben3
[root@localhost app]# find  -name wenben1 -a \( -name wenben2 -o -name wenben3 \)


观察上列代码,得知两代码因()将-o优先级提前而导致了结果的不同,从而证实了“与”的优先级高于“或”。

结论:find中逻辑运算优先级为:()>非>与>或

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值