• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

文件查找(find\locate)

文件的查找
========================================================

一、命令文件 
which ls  (echo $PATH)

二、任意文件
A.  locate   (查询的数据库: /var/lib/mlocate/mlocate.db)  
    计划任务:每天自动更新数据库
    手动更新数据库: updatedb
B.  find 
find [options] [path…] [expression]

按文件名:

[root@jeson ~]# find /etc -name "ifcfg-eth0"
[root@jeson ~]# find /etc -iname "ifcfg-eth0"	//-i忽略大小写
[root@jeson ~]# find /etc -iname "ifcfg-eth*"

按文件大小:

[root@jeson ~]# find /etc -size +5M	//大于5M
[root@jeson ~]# find /etc -size 5M
[root@jeson ~]# find /etc -size -5M
[root@jeson ~]# find /etc -size +5M -ls	//-ls找到的处理动作

指定查找的目录深度:
-maxdepth levels

[root@jeson ~]# find / -maxdepth 3 -a  -name "ifcfg-eth0"  
[root@Jeson opt]#  find / -maxdepth 4 -name "ifcfg-eth0"

按时间找(atime,mtime,ctime):

[root@jeson ~]# find /etc -mtime +5	//修改时间超过5天
[root@jeson ~]# find /etc -mtime 5	//修改时间等于5天
[root@jeson ~]# find /etc -mtime -5	//修改时间5天以内

 

find ./ -mmin -30   //按照分钟查找,30分钟之内的修改的问题

 

按文件属主、属组找:

[root@jeson ~]# find /home -user jack	//属主是jack的文件
[root@jeson ~]# find /home -group hr	//属组是hr组的文件
[root@jeson ~]# find /home -user jack -group hr
[root@jeson ~]# find /home -user jack -a -group hr
[root@jeson ~]# find /home -user jack -o -group hr
[root@jeson ~]# find /home -nouser              //无用户名
[root@jeson ~]# find /home -nogroup
[root@jeson ~]# find /home -nouser -o -nogroup 

按文件类型:

[root@jeson ~]# find /dev -type f	//f普通
[root@jeson ~]# find /dev -type d	//d目录
[root@jeson ~]# find /dev -type l	//l链接
[root@jeson ~]# find /dev -type b	//b块设备
[root@jeson ~]# find /dev -type c	//c字符设备
[root@jeson ~]# find /dev -type s	//s套接字
[root@jeson ~]# find /dev -type p	//p管道文件

根据inode查找:-inum n 

[root@jeson ~]# find / -inum 31064284      

     

按文件权限:

[root@jeson ~]# find . -perm 644 -ls
[root@jeson ~]# find . -perm -644 -ls
[root@jeson ~]# find . -perm -600 -ls
[root@jeson ~]# find /sbin -perm -4000 -ls	//包含set uid
[root@jeson ~]# find /sbin -perm -2000 -ls	//包含set gid
[root@jeson ~]# find /sbin -perm -1000 -ls	//包含sticky

练习:要求用find找出/etc下属主root 权限为644 ls出来。
[root@jeson ~]# find /etc -user root -perm 644 -ls

找到后处理的动作:
-print
-ls
-delete
-exec
-ok

[root@jeson ~]# find /etc -name "ifcfg*" -print
[root@jeson ~]# find /etc -name "ifcfg*" -ls
[root@jeson ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;
[root@jeson ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;
[root@jeson ~]# find /etc -name "ifcfg*" -exec rm -rf {} \;
[root@jeson ~]# find /etc -name "ifcfg*" -delete

扩展知识:find结合xargs

[root@jeson ~]# find . -name "yang*.txt" |xargs rm -rf
[root@jeson ~]# find /etc -name "ifcfg-eth0" |xargs -I {} cp -rf {} /var/tmp

find作业:
1. 将/etc/中的所有目录(仅目录)复制到/tmp下,目录结构不变
find /etc/ -type d -exec cp -rf {} /tmp/ \;

2. 将/etc目录复制到/var/tmp/,
    将/var/tmp/etc中的所有目录设置权限777(仅目录)
    将/var/tmp/etc中所有文件权限设置为666

[root@jeson test]# find /var/tmp/etc/ -type d -exec chmod  777 {} \;
[root@jeson test]# find /var/tmp/etc/ -type f -exec chmod  666 {} \;

文件查找(find\locate)

Pingbacks已打开。

引用地址

暂无评论

发表评论