文件查找命令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)
Stupid_LStupid_L
上一篇 2016-08-16 13:59
下一篇 2016-08-16 13:59

相关推荐

  • linux用户和组的配置文件

    1./etc/passwd:用户及其属性信息(用户名,密码,uid,gid,gecos注释性描述信息,家目录,登录shell)在/etc/passwd文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性。系统管理员经常会接触到这个文件的修改以完成对用户的管理工作。这个文件对所有用户都是可读的。      …

    2017-07-22
  • 一周学会shell编程之小结1

    一周学会shell编程之小结1 内容: shell脚本创建与执行 变量 条件测试 if,case判断语句 练习   检查错误: bash -n path 调试执行: bash -x path   创建shell脚本步骤: 1 添加第一行 #!/bin/bash 2 给予…

    Linux干货 2016-08-15
  • Linux进程管理和计划任务

    进程管理篇 进程概念 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等 Process: 运行中的程序的一个副本,是被载入内存的一个指令集合     进程ID(Process ID,PID)号码被用来标记各个进程     UID、GID、和SELinux语…

    Linux干货 2016-09-17
  • 面授20-1班 0805课间练习与课后作业

    课间练习 第一阶段 新学的命令文本命令cat tac rev more less head tail cut paste wc sort dif patch 1 、找出ifconfig 命令结果中本机的所有IPv4 地址 [root@IP70-CentOS7 ~]# >>ifconfig | tr&nbsp…

    Linux干货 2016-08-07
  • 日志系统

    日志管理 发送日志命令,通知用户:logger  -p  local7.info “this is a test log” Local#.info 为自定义到文件或目录,或用户的级别 日志远程存储需要启动514端口,在centos7上需要取消注释 Uptime可以查看开机时间 rsyslog特性:CentOS6和7 Ü多线程 ÜUDP…

    Linux干货 2018-02-01
  • Linux终端类型

    在linux系统中,用户经常要使用各种终端和操作系统进行交互,实现用户的任务。Linux各种终端的工作方式基本都通过字符命令行的方式完成,通过终端输入命令完成相应结果。通过who命令可查看用户通过哪些终端方式连接到操作系统。通过tty命令查看当前是通过第几个tty登录的。 Linux系统的终端包含如下几种类型: 1) 物理终端 物理终端,又称控制台…

    Linux干货 2016-10-17