
Linux系统文件查找
1.find命令根据文件内容查找文件
[root@web01 code]#find /etc/nginx/ -type f -name "*" | xargs grep -Ri "opsxdev" /etc/nginx/conf.d/blog.opsxdev.com.conf: server_name blog.opsxdev.com; /etc/nginx/conf.d/zh.opsxdev.com.conf: server_name zh.opsxdev.com;
2.find名称查找
//创建文件 touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1} //查找/etc目录下包含ifcfg-eth0名称的文件 [root@x86cloud ~]# find /etc -name "ifcfg-eth1" //-i 忽略大小写 [root@x86cloud ~]# find /etc -iname "ifcfg-eth1" //查找/etc目录下包含ifcfg-eth名称所有文件 [root@x86cloud ~]# find /etc/ -name "ifcfg-eth*" [root@x86cloud ~]# find /etc -iname "ifcfg-eth*"3.find大小查找
//查找大于5M [root@x86cloud ~]# find /etc -size +5M //超找等于5M [root@x86cloud ~]# find /etc -size 5M //查找小于5M [root@x86cloud ~]# find /etc -size -5M
3.find时间查找
//创建测试文件 [root@x86cloud ~]# for i in {01..28};do date -s 201802$i && touch file-$i;done //查找7天以前的文件(不会打印当天的文件) [root@x86cloud ~]# find ./ -iname "file-*" -mtime +7 //查找最近7天的文件,不建议使用(会打印当天的文件) [root@x86cloud ~]# find ./ -iname "file-*" -mtime -7 //查找第7天文件(不会打印当天的文件) [root@x86cloud ~]# find ./ -iname "file-*" -mtime 7 //本地文件保留最近7天的备份文件, 备份服务器保留3个月的备份文件 find /backup/ -iname "*.bak" -mtime +7 -delete find /backup/ -iname "*.bak" -mtime +90 -delete
4.find用户查找
//查找属主是jack [root@x86cloud ~]# find /home -user jack //查找属组是admin [root@x86cloud ~]# find /home -group admin //查找属主是jack, 属组是admin [root@x86cloud ~]# find /home -user jack -group admin //查找属主是jack, 并且属组是admin [root@x86cloud ~]# find /home -user jack -a -group admin //查找属主是jack, 或者属组是admin [root@x86cloud ~]# find /home -user jack -o -group admin //查找没有属主 [root@x86cloud ~]# find /home -nouser //查找没有属组 [root@x86cloud ~]# find /home -nogroup //查找没有属主或属组 [root@x86cloud ~]# find /home -nouser -o -nogroup
5.find类型查找
//f 文件 [root@x86cloud ~]# find /dev -type f //d 目录 [root@x86cloud ~]# find /dev -type d //l 链接 [root@x86cloud ~]# find /dev -type l //b 块设备 [root@x86cloud ~]# find /dev -type b //c 字符设备 [root@x86cloud ~]# find /dev -type c //s 套接字 [root@x86cloud ~]# find /dev -type s //p 管道文件 [root@x86cloud ~]# find /dev -type p
6.find权限查找
//精切匹配644权限 [root@x86cloud ~]# find . -perm 644 -ls //拥有者至少有011(-wx),组010(-w-),其他人100(r--) [root@x86cloud ~]# find /home -perm -324 //查找全局可写(没位权限必须高于2 -w-) [root@x86cloud ~]# find . -perm -222 -ls //拥有者至少有r权限, 或者拥有组至少有r权限, 或者匿名至少有w权限 [root@x86cloud ~]# find /home -perm /442 //包含set uid [root@x86cloud ~]# find /usr/sbin -perm -4000 -ls //包含set gid [root@x86cloud ~]# find /usr/sbin -perm -2000 -ls //包含sticky [root@x86cloud ~]# find /usr/sbin -perm -1000 -ls
7.find处理动作
当查找到一个文件后, 需要对文件进行如何处理, 默认动作 -print
-print //打印 -ls //以长格式打印显示 -delete //删除查找到的文件(仅能删除空目录) -exec //后面跟自定义的 shell 命令(标准写法 -exec \;) -ok //后面跟自定义的 shell 命令(会提示是否操作) //打印查询到的文件 [root@x86cloud ~]# find /etc -name "ifcfg*" [root@x86cloud ~]# find /etc -name "ifcfg*" -print [root@x86cloud ~]# find /etc -name "ifcfg*" -ls //拷贝文件 [root@x86cloud ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \; //-ok会不断提示 [root@x86cloud ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \; //删除文件 [root@x86cloud ~]# find /etc -name "ifcfg*" -exec rm -f {} \; [root@x86cloud ~]# find /etc -name "ifcfg*" -delete find结合xargs
8.xargs将查找到结果一个一个的处理
[root@x86cloud ~]# touch file.txt [root@x86cloud ~]# find . -name "file.txt" |xargs rm -f [root@x86cloud ~]# find . -name "file.txt" |xargs -I {} cp -rvf {} /var/tmp