洞悉find中的德摩根定律和条件权限perm

1.德摩根定律

(1)初悉德摩根定律儿

在命题逻辑和逻辑代数中,德·摩根定律(或称德·摩根定理)是关于命题逻辑规律的一对法则。
奥古斯塔斯·德·摩根首先发现了在命题逻辑中存在着下面这些关系:
非(A 且 B) = (非 A) 或 (非 B)非(A 或 B) = (非 A) 且 (非 B)

(2)图解德摩根定律

1>.非(A or B) = (非 A) and (非 B)

约定以下图中矩形代表全部,圆A和圆B是矩形的一部分并有部分相交

imageAandB.PNG

1)A or B,如下图中的黑色部分:
    属于A或者是属于B,即为图中黑色部分

imageAandB1.PNG

2)非A and 非B    1.非A为B黄色部分加上矩形中黑色部分,非B为A橘色部分加矩形中黑色部分,而非A and 非B即是去除A也取出B,即仅剩下黑色部分;

image非Aand非B.PNG

3)由1)和2)中图可以看出,1)中图和2)中属于非关系,即非1)为2),非2)为1);
所以 非(A or B)= (非 A) and (非 B)

2> 非(A and B) = (非 A) 或 (非 B)

1)非(A and B),A and B,即属于A也属于B的部分,二者的交集
对二者交集进行取反,则非(A and B)部分为下图中黑色部分

image捕非(AandB)PNG.PNG

2)(非 A) 或 (非 B)
    非A即不属于A的部分,下图1
    非B即不属于B的部分,下图2
    两者取或即为下图3

图1 image

非AandB.PNG 

图2 

非BandA.PNGimage 

图3 image

捕非(AandB)PNG.PNG

3)由1)和2)可以看出非(A and B) = (非 A) 或 (非 B)

(3)德摩根定律在find命令中的使用示例:

1).找出/tmp目录下,属主不是root,且文件名不是fstab的文件

find /tmp\( -not -user root -a -not -name 'fstab' \) -ls

find /tmp-not \( -user root -o -name 'fstab' \) –ls

2.条件权限perm

(1)perm用处

可以根据文件不同用户权限位,进行未见的查找动作,提高了文件查找的精确度。掌握该方式,可以使我们快捷有效的使用find从大量的系统文件中找到我们需要的文件。

(2)-perm的三种形式

find -perm modefind -perm -modefind -perm /mode1)mode:精确权限匹配,如:    find /root -perm 555 -ls
    查找/root下用户组和其它用户的权限均是读和执行的文件,执行结果示例如下:
[root@CentOS6 Packages]# find /root -perm 555 -ls
    132235    4 -r-xr-xr-x   1 root     root         1343 Aug 13 18:31 /root/etc2016-08-13/rc.d/init.d/blk-availability    132261    4 -r-xr-xr-x   1 root     root         3045 Aug 13 18:31 /root/etc2016-08-13/rc.d/init.d/lvm2-monitor    132268    4 -r-xr-xr-x   1 root     root         2137 Aug 13 18:31 /root/etc2016-08-13/rc.d/init.d/lvm2-lvmetad
2)/MODE:任意一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,(+从CentOS7开始淘汰)
查找/root/bin目录下三类用户至少有一类有写权限的文件
find /root/bin -perm /222 -ls
[root@CentOS6 bin]# find /root/bin -perm /222 -ls131247    4 drwxr-xr-x   5 root     root         4096 Aug 14 21:05 /root/bin131246    4 drwxr-xr-x   3 root     root         4096 Aug 15 21:07 /root/bin/seatwork131242    4 -rwxr-xr--   1 root     root          100 Aug 11 17:14 /root/bin/seatwork/hostping.sh131241    4 -rwxr-xr--   1 root     root          149 Aug 11 14:54 /root/bin/seatwork/sumspace.sh
3)-MODE:每一类对象都必须同时拥有指定权限,与关系与关系0 表示此处的权限位不关心
查找三类用户都必须有写权限的文件
find /root/bin -perm -222 -ls
[root@CentOS6 bin]# find /root/bin -perm -222 -ls131246    4 drwx-wxrw-   3 root     root         4096 Aug 15 21:07 /root/bin/seatwork131242    4 -rwx-wxrw-   1 root     root          100 Aug 11 17:14 /root/bin/seatwork/hostping.sh131241    4 -rwx-wxrw-   1 root     root          149 Aug 11 14:54 /root/bin/seatwork/sumspace.sh131229    4 -rwx-wxrw-   1 root     root          142 Aug 11 14:51 /root/bin/seatwork/sumfile.sh131244    4 -rwx-wxrw-   1 root     root          142 Aug 11 17:47 /root/bin/seatwork/per.sh131248    4 -rwx-wxrw-   1 root     root           99 Aug 11 17:58 /root/bin/seatwork/login.sh137570    4 drwx-wxrw-   2 root     root         4096 Aug 15 16:26 /root/bin/seatwork/For137574    4 -rwx-wxrw-   1 root     root          797 Aug 15 13:11 /root/bin/seatwork/For/useradd.sh137573    4 -rwx-wxrw-   1 root     root          178 Aug 15 14:09 /root/bin/seatwork/For/multiplication.sh137571    4 -rwx-wxrw-   1 root     root          486 Aug 15 13:17 /root/bin/seatwork/For/rcfile.sh137572    4 -rwx-wxrw-   1 root     root          157 Aug 15 12:33 /root/bin/seatwork/For/varfile.sh131243    4 -rwx-wxrw-   1 root     root          111 Aug 11 17:56 /root/bin/seatwork/nologin.sh131233    4 -rwx-wxrw-   1 root     root          150 Aug 11 15:03 /root/bin/seatwork/sumid.sh131245    4 -rwx-wxrw-   1 root     root          138 Aug 11 17:20 /root/bin/seatwork/argsnum.sh131228    4 -rwx-wxrw-   1 root     root          158 Aug 11 16:36 /root/bin/seatwork/checkdisk.sh

总结: 对于德摩根定律和条件权限perm是find命令使用过程中的两个难点,需要多对其进行练习和理解。以便在以后的文件查找中,提高工作工作效率。

3.find 练习题

1、查找/var目录下属主为root,且属组为mail的所有文件
    find /var/ -user root -group mail -ls 
1+.查找/var目录下属主不为root,且属组不为mail的所有文件
    find /var/ -not -user root -a -not -group mail
    find /var/ -not \( -user root -o -group mail \)2、查找/var目录下不属于root、lp、gdm的所有文件
    find /var/ -not -user root -a -not -user lp -a  -not -user gdm -ls
    find /var/ -not \( -user root -o -user lp -o -user gdm \) -ls3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件
    find /var/ -mtime -7 -a -not \( -user root -o -user postfix \) -ls4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件
    find / \( -nouser -o -nogroup \) -a -atime -75、查找/etc目录下大于1M且类型为普通文件的所有文件
    find /etc/ -size +1M -type f 

6、查找/etc目录下所有用户都没有写权限的文件
    find /etc/ -perm -2227、查找/etc目录下至少有一类用户没有执行权限的文件
    find /etc/ -perm -1118、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件
    find /etc/init.d/ -perm -113

原创文章,作者:提着酱油瓶打醋,如若转载,请注明出处:http://www.178linux.com/36598

(0)
提着酱油瓶打醋提着酱油瓶打醋
上一篇 2016-08-16
下一篇 2016-08-16

相关推荐

  • 小巧精悍——常见文本处理工具用法及技巧总结

    小巧精悍——常见文本处理工具用法及技巧总结 Linux最重要的哲学思想就是:一切皆文件。可见文件及文件操作在Linux当中是多么的重要。在Linux系统中我们也会经常用到各种文本文件处理的操作,熟练使用这些小巧精悍的文本处理工具,在关键时刻往往展现非凡的神奇功效。常见文本处理小工具:cat、hexdump、nl、less、head、tail、cut、tr、r…

    Linux干货 2016-11-05
  • 10个必需的iOS开发工具和资源

       界面总不是一件很容易事,尤其是iPhone/iPad的界面,做过iOS开发的程序员,一定会感到开发iPhone/iPad的界面是一件多么不容易的事。下面的文章来自10 Essential iOS Developer Tools & Resources,这个文章介绍了十个iOS开发的基础性工具和资源,其一定会很有效地帮你做iO…

    Linux干货 2015-04-01
  • 函数式编程

    当我们说起函数式编程来说,我们会看到如下函数式编程的长相: 函数式编程的三大特性: immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修改。这样一来,可以让你的程序少很多Bug。因为,程序中的状态不好维护,在并发的时候更不好维护。(你可以试想一下如果你的程序有个复杂的状态,当以后别…

    Linux干货 2016-08-15
  • 计算机及Linux系统基础简介

    一、计算机的组成及其功能 计算机由运算器,控制器,存储器,输入装置和输出装置五大部件组成计算机,每一部件分别按要求执行特定的基本功能。 运算器或称算术逻辑单元(Arithmetical and Logical Unit) 运算器的主要功能是对数据进行各种运算。这些运算除了常规的加、减、乘、除等基本的算术运算之外,还包括能进行“逻辑判断”的逻辑处理能力,即“与…

    Linux干货 2017-07-02
  • Linux下用户属性的更改

      Linux下更改用户的属性一般使用usermod命令   基本格式如下:            Usermod[options]  login      [options]中具体参数如下:    -u  U…

    Linux干货 2017-05-30
  • 每日一练 —8.4 文本处理工具,正则表达式

    练习 1 、找出ifconfig 命令结果中本机的所有IPv4 地址 2 、查出分区空间使用率的最大百分比值 3 、查出用户UID 最大值的用户名、UID 及shell 类型 4 、查出/tmp 的权限,以数字方式显示 5 、统计当前连接本机的每个远程主机IP 的连接数,并按从大到小排序   6,显示/proc/meminfo文件中以大写或小写s开…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 15:05

    find命令是笔试中常会遇到的考点,需要多加练习,文章中命令与执行结果怎么跑到一起了,这个需要作者自己下来好好调整了。