文件查找命令Find

文件查找命令find

Find:在文件上查找符合条件的文件,是个实时的查找工具,通过遍历指定路径完成文件查找

blob.png


工作特点:

查找速度慢

精度查找

实时查找

可能只搜索用户具有读取和执行权限的目录

 

语法:

find [option]…[查找路径][查找条件][处理动作]

 

查找条件:

-name “文件名称:支持使用glob *,?,[],[^]

-iname “文件名称:忽略大小写

blob.png

-inum n:按照节点号查找

-samefile name:相同节点号的文件

-links n:链接数为n的文件

-regex ”PATTERN“:以pattern匹配整个文件路径字符串,而不仅仅是文件名称

-user 查找属主为指定的用户(uid)的文件

blob.png

-group 查找属组为指定的用户组(gid)的文件

-uid 查找属主为指定的uid号的文件

-gid 查找属组为指定gid号的文件

-nouser 查找没有属主的文件

-nogroup 查找没有属组的文件

blob.png

 

查找条件

-type TYPE

f 普通文件

d 目录文件

l 符号链接文件

s 套接字文件

b 块设备文件

c 字符设备文件

p 管道文件

blob.png

 

查找条件

组合查找:

与: -a

或: -o

非: -not ,!

 blob.png

 

.摩根定律

(非 P)或(非 Q= 非(PQ

(非 P)且(非 Q= 非(PQ

示例

!P –a !Q = !(P –o Q)

!P –o !Q = !(P –a Q)

blob.png

非P或非Q 表明这两者只要有一个为非就可以满足条件,它的所有情况是

1.非P 真Q

2 真P 非Q

3 非P 非Q

这三种情况否符合非P或非Q,那么它的反面就是

真P且真Q,那么上述三种情况就可以直接表示为

取真P且真Q的补集,也就是不是真P且真Q的情况

则可以表示为 !(真P且真Q)即非(真P且真Q)

同样,非P且非Q就可以表示为!(真P或真Q)即非(真P或真Q)


find /tmp \( -not –user root –a –not –name “f*” \) –ls

find /tmp –not \( -user root –o –name “f*” \) –ls

 

查找/etc目录下,除/etc/sane.d目录的其他所有.conf后缀的文件

find /etc/ -path “/etc/sane.d” –a –prune –o –name “*.conf” –print

   


根据文件大小查找

-size +|-#num

常用单位 K M G

#num: (#-1,#]

-#num:[0,#-1]

+#num:(#,正无穷)

blob.png 

以时间为单位

-atime [+|-]#

#:[#,#+1)

+#:[#+1,正无穷)

-#:[0,#)

 

-mtime

-ctime

 

根据权限查找

-perm [-|/]MODE

mode:精确权限匹配

/mode:任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,Centos7中舍弃了+

-mode:每一类对象都必须同时拥有指定的权限,与关系

0:表示不关注

 blob.png

排除/root目录下的.mozilla目录,然后查找文件中ugo任意一位有执行权限的文件并显示出来


blob.png

排除/root目录下的.mozilla目录,然后查找文件中ugo三者都有执行权限的文件,这三者条件必须都满足的才能被匹配,否则不匹配


blob.png

只看组g有没有执行的权限,有就满足匹配,其他的u,o不考虑


find -perm 755 匹配权限为755的文件,其他文件不匹配

find -perm /222 u,g,o中任意一个有写权限该文件就能匹配

find -perm -222 只有文件中u,g,o权限位都有写权限的文件才可以被匹配

find -perm -002 文件中只要其他人有写权限,该文件就可以被匹配

 

处理动作

-print 默认处理动作,输出至屏幕

-ls 类似于对查找到的文件执行那个ls -l命令

-delete 删除查找到的文件

-fls file 查找到的文件以长格式形式保存到指定文件中

-ok command {} \; 对查找到的文件执行由command指定的命令

-exec command {} \; 对查找到的文件执行command指定的命令

{} 用于引用查找到的文件自身

有些命令不能接受过多参数,此时命令执行会失败,可以使用

find | xargs command

blob.png 

注:{}表示的是完整的文件路径,所有如果要备份到其他目录要注意路径的正确书写


find –name “.conf” –exex cp {} {}.org \;

备份含有.conf字符串的文件,备份的名称后缀加上.org扩展名

find /data –type f –perm 644 –name “*.sh” –exec chmod 755 {} \;

找出data目录下包含.sh字符串的权限是644的普通文件,并将这些文件赋予755的权限

find /home –type d –ls

找出家目录下所有的目录并显示

习题

1、写一个脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息

blob.png

blob.png

2、写一个脚本/root/bin/yesorno.sh,提示用户输入yes或no,并判断用户输入的是yes还是no,或是其它信息

blob.png

blob.png  

3、写一个脚本/root/bin/filetype.sh,判断用户输入文件路径,显示其文件类型(普通,目录,链接,其它文件类型)

blob.png

blob.png

4、写一个脚本/root/bin/checkint.sh,判断用户输入的参数是否为正整数

blob.pngblob.png

5、查找/var目录下属主为root,且属组为mail的所有文件

blob.png

6、查找/var目录下不属于root、lp、gdm的所有文件

blob.png

7、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件

blob.png

8、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

blob.png

9、查找/etc目录下大于1M且类型为普通文件的所有文件

blob.png

10、查找/etc目录下所有用户都没有写权限的文件

blob.png

11、查找/etc目录下至少有一类用户没有执行权限的文件

blob.png

blob.png

12、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件

blob.png

原创文章,作者:Stupid_L,如若转载,请注明出处:http://www.178linux.com/36033

(0)
上一篇 2016-08-16 13:59
下一篇 2016-08-16 13:59

相关推荐

  • 07程序包管理器简介

    源代码命名方式,name-version.tar.gz|bz2|xz,    –>version:major.minor.release 要将一个源代码程序安装到Linux系统上,一般有两个方法。 1、找到源代码,手动编译安装。解压,./configure  –> make –&g…

    Linux干货 2016-11-03
  • jenkins+gitlab构建安卓自动编译环境

        因工作关系接触到接触到安卓自动编译环境,网上的资料都推荐了jenkins,因为第一次接触安卓和jenkins,踩了不少的坑,有总结才有进步。    gitlab环境之前已经安装完成可用,具体步骤另外详解吧。本例目标是在gitlab可用前提下,通过jenkins将git仓库的代码自行编译打包,生成可用的apk安装…

    Linux干货 2016-07-16
  • N22-第二周博客作业

    1、Linux系统上常见的文件管理类命令有哪些,其常用的使用方法及其示例演示。 常见的文件类管理命令:cp,rm,mv cp复制文件和目录: -f, –force 强制执行 -i 显示交互信息,默认cp 带-i选项 -r,-R 递归复制目录 -s 创建一个符号链接而不复制文件 -d 复制符号链接本身 cp aa.link qqq 相当于创建qqq…

    Linux干货 2016-08-22
  • Liunx权限的管理

    一、权限 获取某种资源的能力。对于Liunx而言,一切皆文件。所以,对于Liunx的权限定义,也就是定义文件被不同用户访问能力的过程。 权限分为三种:r、w、x 文件 r:查看文件内容 w:修改文件内容 x:可以将文件启动运行 目录 r:可以使用ls命令查看目录中的文件名 w:可以在目录中创建或删除文件(能否删除文件,取决于用户对目录的写权限 x:可以cd到…

    Linux干货 2015-04-03
  • 网络管理

    说起网络,大家都不陌生,因为大家天天上网嘛,连路边老大爷都会聊微信了,但是我们所了解的网络只是茫茫网络大海中的一叶扁舟,网络的范围其实有很大,里面涉及的东西也非常多,现在让小编带你一点一点去了解它吧,相信大家看了之后,会有不一样的体会呢! 1、 什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系。在数学上,网络是一种图,一般认为专指加权图。网络除…

    2017-09-02
  • 谷歌三大核心技术(一)The Google File System中文版

    摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。 虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础的,不管现在还是…

    Linux干货 2015-04-13