find可以这么用

在工作中不可或缺的工具find:查找系统中的各种文件,对查找的文件进行操作,这就是find的作用。进入正题:

1、查找下系统中有一下系统中有几个文件叫issue的

    [root@localhost private]#find / -name issue

        /etc/issue
        /root/etc2017-02-28/issue
    注:find查找是精确查找,不是模糊匹配

2、现在有一个任务,需要备份一下/etc目录下的文件,只备份/etc目录当级目录下的文件

    [root@localhost private]#find /etc -maxdepth 1 -mindepth 1

        /etc/fstab
        /etc/crypttab
        /etc/mtab
        /etc/resolv.conf

        ……..

    命令中-maxdepth是最大目录递归,面mindepth是最小目录递归,而上面打示例是精确定位目录递归次数

3、下面来说说与文件类型的相关搜索

    先来回忆一下文件都有那些类型吧:

        file(f):普通文件

        directory(d):目录

        character(c):字符型设备文件

        block(b):块类型设备文件

        link(l):软链接文件

        socket(s):套接字文件

        pipe(p):管道文件

    来查看一下/etc目录一级目录中的以.conf字符结尾的普通文件

          find /etc -maxdepth 1 -mindepth 1 -type f -name “*.conf”

                   /etc/resolv.conf
                    /etc/sos.conf
                    /etc/logrotate.conf
                    /etc/host.conf
                    /etc/request-key.conf

    做个小解释吧:精确定位目录层级使用 -maxdepth 1 -mindepth 1,而定位文件时使用-type再加上文件类型,而在文件名通配方面需要加引号

4、来说说相关时间的查找吧

      查找一下最近7天发生变划的文件吧

            find ./ -mtime -7

    这个有mtime,atime,ctime之分,可还记的时间戳,就是它,所心查找对应的时间发生的不同的改变的文件就这么查吧

5、按文件大小进行查找

    这个文件大小查找有点坑,在这个值区间太坑了不好玩

        查找当前目录大于1M的目录

            find ./ -size +1M -exec ls -lh {} \;

                -rw-r–r–. 1 root root 1.8M Mar  4 15:04 ./.cache/tracker/meta.db
                -rw-r–r–. 1 root root 1.2M Mar  4 15:04 ./.cache/tracker/meta.db-wal

    在生产环境也只有这个比较常用,查看下特定目录下有那些大文件,所面的操作后面会说明

6、下面来看看权限相关的查询

      查询一下文件的其它用户有执行权限的文件

           find ./ -perm -001 -ls

    查询当前目录有执行权限的文件

        find ./ -perm /111 -ls

    注:权限匹配中-mode是并的关系,在这之中0表示不关心这一个位置,例如-111就是属主,属组,其它用户都有执行权限的文件,而/mode正好相反,是或的关系,只要有一个位置匹配上就可以输出

7、下面说说操作匹配项

    这里说个3+1吧:

    -ls:这算是3个中的一个输出list长格式

    -ok:这算是3个中的一个后面可以加命令进行操作

        固定格式是:-ok COMMAND {} \;

    -exec:这个同ok,只是进行操作时不提示 

       这里说一个示例吧,要把当前目录下的可执行文件移动到tmp目录下            

            find ./ -type f -perm /111 -exec mv {} /tmp/test/{} \;

    来说说最后的1吧xarges,这个比较给力,可以完成大批量文件操作

        find a | xargs rm

8、说一下用户相关的问题吧:

    -user,-group,-gid,-uid,-nouser,-nogroup,

    这个是查找用户的相关的参数,其中重要的就是查找没有用户,没有用户组的两个相关的参数了,这个可以强化设备安全,因为没有用户的文件,会照成设备安全隐患

9、上面介绍了这么多find的参数,但是这样的find并不强大,但是find支持或与并,这个就强大了,可以多条件进行匹配了

    非:-not

    与:-a

    或:-o

      查找var目录下的用户是root,用户组是mail的文件

        find ./ -user root -a -group mail 

    注:-a可省略

写法多,正在挖掘

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

(0)
gaomeigaomei
上一篇 2017-03-05
下一篇 2017-03-06

相关推荐

  • Linux之函数

      Linux之函数     函数介绍函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分。函数和shell程序比较相似,区别在于:Shell程序在子Shell中运行而Shell函数在…

    Linux干货 2016-08-25
  • 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。   cp -r /etc/skel /home/tuser1    chmod -R go=— /home/tuser1 2、编辑/etc/group文件,添加组hadoo…

    Linux干货 2016-09-19
  • 硬盘及文件系统基础概念

    机械硬盘HDD(Mechanical hard disk) 机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。 磁头(Head): 对硬盘上的数据进行读写操作. 磁道(Track) 当磁盘旋转时,磁头若保持在一个…

    Linux干货 2017-04-09
  • python之psutil模块

    python 安装psutil 来实现获取系统信息  # yum -y install python*pip # yum -y groupinstall “Development Tools # yum -y install python34-devel.x86_64 # pip3 install –upgrade pip # pip3 inst…

    Linux干货 2014-01-22
  • bash脚本编程实例

    bash脚本编程实例 1.写一个脚本 能接受四个参数:start、stop、restart、status start:输出“starting脚本名finished.” restart:输出“restarting脚本名finished.” stop:输出“stoping脚本名finished.” status:输出“status脚本名finished.” 其他…

    Linux干货 2017-09-04
  • 磁盘配额管理

    磁盘配额管理    设定文件系统配额 配置逻辑卷设定LVM快照 配置配额系统综述在内核中执行以文件系统为单位启用对不同组或用户的策略不同根据块或者节点进行限制   执行软限制(soft linmit)   硬限制(hard limit)初始化分区挂载选项:usrquota, ge…

    Linux干货 2017-05-22