find命令
##按文件名
[root@miner-k ~]# find /etc -name "ifcfg-eth0"
[root@miner-k ~]# find /etc -iname "ifcfg-eth0" //-i忽略大小写
[root@miner-k ~]# find /etc -iname "ifcfg-eth*"
##按文件大小:
[root@miner-k ~]# find /etc -size +5M //大于5M
[root@miner-k ~]# find /etc -size 5M
[root@miner-k ~]# find /etc -size -5M
[root@miner-k ~]# find /etc -size +5M -ls //-ls找到的处理动作
##指定查找的目录深度:
-maxdepth levels
-mindepth levels
[root@miner-k ~]# find / -maxdepth 3 -a -name "ifcfg-eth0"
按时间找(atime,mtime,ctime):
按照时间单位为day找(atime,mtime,ctime)
[root@miner-k ~]# find /etc -mtime +5 //修改时间超过5天
[root@miner-k ~]# find /etc -mtime 5 //修改时间等于5天
[root@miner-k ~]# find /etc -mtime -5 //修改时间5天以内
按照时间单位为分钟查找(amin,mmin,cmin)
[root@miner-k ~]# find . -mmin -30
[root@miner-k ~]# find . -mmin +30
##按文件属主、属组找:
[root@miner-k ~]# find /home -user jack //属主是jack的文件
[root@miner-k ~]# find /home -group hr //属组是hr组的文件
[root@miner-k ~]#find /home -user jack -group hr
[root@miner-k ~]# find /home -user jack -a -group hr
[root@miner-k ~]# find /home -user jack -o -group hr
[root@miner-k ~]# find /home -nouser
[root@miner-k ~]# find /home -nogroup
[root@miner-k ~]# find /home -nouser -o -nogroup
##按文件类型:
[root@miner-k ~]# find /dev -type f //f普通
[root@miner-k ~]#find /dev -type d //d目录
[root@miner-k ~]# find /dev -type l //l链接
[root@miner-k ~]# find /dev -type b //b块设备
[root@miner-k ~]# find /dev -type c //c字符设备
[root@miner-k ~]#find /dev -type s //s套接字
[root@miner-k ~]# find /dev -type p //p管道文件
##按文件权限:
[root@miner-k ~]# find . -perm 644 -ls
[root@miner-k ~]# find . -perm -644 -ls
[root@miner-k ~]#find . -perm -600 -ls
[root@miner-k ~]# find . -perm -222 -ls //全局可写
[root@miner-k ~]# find /sbin -perm -4000 -ls //包含set uid
[root@miner-k ~]# find /sbin -perm -2000 -ls //包含set gid
[root@miner-k ~]# find /sbin -perm -1000 -ls //包含sticky
注意: perm 644
-perm -644
-perm +644
的区别:
perm 444
表示权限为444的文件
-perm -444
表示ugo的权限都大于4的文件(user≥4 and group≥4 and other≥4),对应的文件权限有565、464、444等。
-perm +444
表示ugo权限中只要有一个大于4即可(user≥4 or group≥4 or other≥4)。对应的文件权限有532、666、137等
##按正则表达式:
-regex pattern
[root@miner-k ~]# find /etc -regex '.*ifcfg-eth[0-9]'
.* 任意多个字符
[0-9] 任意一个数字
找到后执行动作这里写代码片
找到后处理的动作 ACTIONS: (默认动作-print)
-ls
-delete
-exec 后面跟自定义的shell命令
-ok 后面跟自定义的shell命令
[root@miner-k ~]# find /etc -name "ifcfg*"
[root@miner-k ~]# find /etc -name "ifcfg*" -print
[root@miner-k ~]# find /etc -name "ifcfg*" -ls
[root@miner-k ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;
[root@miner-k ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;
[root@miner-k ~]# find /etc -name "ifcfg*" -exec rm -rf {} \;
[root@miner-k ~]#find /etc -name "ifcfg*" -delete
##扩展知识:find结合xargs
[root@miner-k ~]# find . -name "yang*.txt" |xargs rm -rf
[root@miner-k ~]# find /etc -name "ifcfg-eth0" |xargs -I {} cp -rf {} /var/tmp
相关阅读
find /etc/ -name passwd ##查找/etc/下名称中带有passwd的文件 find /etc -maxdepth 1 -name passwd ##查找/etc/下名