Find命令还可以根据文件的权限来查找。如把用户主目录下所有用户都可以读写的文件找出来。这些文件所有的用户都可以修改,为此具有一定的安全隐患。系统工程师可能希望把这些文件对应的清单保存到一个文件中,然后他们可以根据这份清单一个个的去调整权限。如果只是显示在屏幕中的话,对于他们后需的工作很不方便。总不能够拿笔抄下来或者每修改一个执行一下查询命令吧?为此把找到的文件清单保存到一个文本文件中是必需的。要实现这个需求的话,可以采用如下命令:
Find /home –perm 666 –type f –ls >detail.txt
在这条命令中,条件语句中主要用了两个参数,分别为权限参数perm与文件类型参数-type。在Unix操作系统中主要包括三类文件(其余几类不怎么用),分别为普通文件、目录文件与连接文件。这里只需要寻找普通文件,为此就可以利用-type参数来指定需要查找的文件类型。另外值得注意的是,如果在条件语句中有多个参数话,则其默认会采取的是与运算,即必须同时满足以上两个条件的文件才会被查找出来。如果系统工程师需要采用或预算的话,则需要在参数之间加入-o可选项,它表示条件之间的关系是或的关系,只需要满足其中任何一个条件即可。在查询条件中还有一个很重要的操作符,即!操作符,它表示相反的条件。如现在系统工程师想查找所有的目录文件与普通文件(不考虑其他种类的特殊文件),则有两种表示方法。一是 –type f –o –type –d;二是! –type l。很明显采用了!操作符的第二种处理方式要简单的多。为此系统工程师可以根据自己的需要来选择合适的操作符。
其次在第三部分的动作参数中大家可以看到,在上面的例子中采用了exec关键字,但是在这个例子中却没有用到。这是为什么呢?原来在find命令的定义中,由于ls命令与print命令比较常用,为此用到这两个命令的时候,直接利用横杆加上命令即可。如果使用其他命令则需要加入exec关键字。
标签: