Linux文件操作类命令 find

作用:

实时查询,条件很多,结合shell命令统一处理

格式

find  目录  条件  【shell命令】
    -name或-iname
        找具体文件名,-iname(常用)可以忽略大小写         
        例子
            find  /  -iname  passwd
                找根目录下名字正正好好叫做passwd文件
            find  /  -iname  *passwd
                加上通配符,会匹配所有文件名中带有passwd这个词的

    -user
        找属主的文件或者目录
        例子
            find /  -user  属主  -group  属组
                与的关系,既要满足-user条件,也要满足-group条件

    -group
        找属组的文件或者目录
        例子
            find /  -user  属主 -o  -group  属组
                逻辑或的关系,-user条件和-group条件,满足一个即可


    当一个用户删除后,要清除该用户存在时所创建的目录或文件
        知道用户的uid和gid的情况下
            find  /  -user  uid   -o  -group   gid

        不知道uid和gid的情况下
            -nouser和-nogroup
            find  /  -nouser   -o  -nogroup  


    -size
        文件大小
        例子
            find  /opt  -size 10M 
                文件大小正好等于10M
                
            find  /opt  -size -10M 
                文件大小小于10M

            find  /opt  -size +10M 
                文件大小大于10M

            find  /opt  -size  +5M   -size  -20M
                查找文件大小在5M到20M之间的


    -perm
        权限
        例子
            find  /opt  -perm  644
                文件或目录的权限直接就是644的权限

            find  /opt  -perm  /644
                文件或目录的权限三位只要满足其中一位就可以

            find  /opt  -perm  -644
                文件或目录的权限:拥有者至少包含6和属组至少包含4和其他人至少包含4

	        找出Linux系统当中所有suid权限的文件
	            find  /  -perm  /4000
	
	        找出Linux系统当中所有sgid权限的文件
	            find  /  -perm  /2000

    -type
        文件类型
        -type  后面跟的
           
            f
                找普通文件

            d
                找目录

            b
                找块设备

            l
                找软连接

            c
                找字符文件

        例子
            find /  -type  l   -iname  *yum* 
                找软连接文件,文件名包含yum


    -atime(access访问时间)或-mtime(modify修改时间)或-ctime(change改变时间)(stat  文件——得到的元数据信息当中的时间)
        都是以天为单位
        例子
            find  /opt  -atime  +5
                找五天前atime发生改变的
                +是多少之前的


    -amin或-mmin或-cmin
        都是以分钟为单位
        例子
            find  /opt  -mmin  -3
                找3分钟以内mtime发生改变的
                -是多少之内的


    touch -d   20240201 2.txt(今天创建的模拟一个4天前的一个文件)
        今天是20240206
            find  .  -atime  +4  
                4天前atime发生改变的(可以查到)


    对搜索到的结果集处理
        -exec  用shell命令
        例子
            find .  -atime  -1  -exec  cp   -r  {}  /tmp  \;
                将结果集的文件复制到/tmp
                {}——代表两个文件的结果集

            将结果集的文件直接删除
                find .  -atime  -2  -ok  rm  -rf  {}  \;
                    返回结果
                        < rm ... ./1.txt > ?
                        < rm ... ./syg.txt > ?
                        < rm ... ./ytvb.txt > ?

                    -ok
                        以应答的方式进行删除,y删除,n不删除

你可能感兴趣的:(Linux,linux,服务器,运维)