文件查找命令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
下一篇 2016-08-16

相关推荐

  • 例图分析软、硬链接

    在linux系统中存在两种链接方式硬链接和软连接,两种链接方式在系统中是完全不同的模式,本文主要详述两种的区别并给与图示; 创建guo ,lin两个文件,两个文件分别用于演示软连接和硬链接     图一:创建文件   创建软连接guo.ruan1     图二:创建软连…

    Linux干货 2016-10-29
  • LNMP的虚拟主机配置http和https

    项目实战:    搭建LNMP环境:Linux+Nginx+Mysql(MariaDB)+php(php-fpm),创建多个虚拟主机:    主机1提供正常的http服务,用于安装wordpress博客;    主机2提供正常的https服…

    Linux干货 2016-10-30
  • Shell脚本编程

    Shell脚本编程 关于脚本的调试     bash -n /path/to/some_script                   &…

    Linux干货 2016-08-15
  • 一键编译安装httpd服务

    一键编译安装httpd服务 背景: httpd服务是一个常用的web服务,所以很多地方会用到,这里写一个一键编译安装httpd服务的脚本。 环境: 系统:centos6.9和centos7.3(应该所有的6和7的版本都可以使用) httpd源代码版本:httpd-2.2.34.tar.bz2和httpd-2.4.27.tar.bz2 。下载网址官网:http…

    2017-09-16
  • linux网络属性命令操作介绍(第十一天)

            linux网络属性常用命令有ifconfig\route\ip命令,centos7 的还是nmcli\nmtui。     网络属性的三大文件:修改DNS的文件/etc/resolv.conf  、修改网卡IP地址/etc/sysconfig/…

    Linux干货 2016-06-01
  • Linux文件类型

    Linux文件类型常见的有:普通文件、目录文件、字符设备文件和块设备文件、符号链接文件等。 1、普通文件,颜色为白色 纯文本档 二进制文件 数据格式文件 2、目录文件,颜色为蓝色 当我们在某个目录下执行,看到有类似 drwxr-xr-x ,这样的文件就是目录,目录在Linux是一个比较特殊的文件。首字符是【d】字母。 3、字符设备和块设备…

    Linux干货 2016-10-16