find文件查找

查找文件

find 命令
# 按照要求去查询文件

格式: 
    find[查询的路径][匹配模式][匹配规则]
匹配模式:
-name   : 按照名字去匹配
-iname  : 按照文件的名字查找文件(忽略大小写)
    
正则匹配:
    *   : 匹配任意数量的任意字符(匹配零个或多个任意字符)表示匹配所有内容信息
    ?  : 匹配任意一个字符
例如:
    查询出/etc目录下的hosts文件
        find /etc/ -name "hosts"
        
    查询出/etc目录下的以ifcfg开头的文件
        find /etc/ -name "ifcfg*"
    
    查询出/etc目录下以.conf结尾的文件
        fing /etc/ -name "*.conf"
        
    查询出/etc目录下,文件名包含host的文件有哪些
        find /etc/ -name "*host*"
-type   : 按照文件的类型匹配
    常见的文件类型:
        f   : 普通文件
        d   : 普通文件夹
        l   : 链接文件
        c   : 字符设备文件
        b   : 块设备文件
        s   : socket 文件
        p   : 管道文件
例如:
    查询出/etc目录下,所有的普通文件
        find /etc/ -type f
    
    查询出/etc目录下,所有的文件夹
        find /etc/ -type d
    
    查询出/dev/目录中所有的块设备文件
        find /dev/ -type b
    
    查询出/dev目录中所有的字符设备文件
        find /dev/ -type c
        
    查询出/etc目录中文件名包含nginx的普通文件
        find /etc/ -name "*nginx*" -type f
        
    将/etc/yum.repos.d/目录下所有的.repo文件备份到/tmp下

    	find /etc/yum.repos.d/ -name "*.repo" -exec cp {} /tmp \;
    	
	将/etc/下所有的目录复制到/tmp下
	
    	find /etc -type d -exec cp -r {} /tmp/ \;
-perm   : 按照文件的权限查询
    常见的文件权限  :
        755     : 文件夹的默认权限
        644     :文件的默认权限
例如: 
    查询出/root目录下,权限为755的文件
        find /root/ -perm 755
-user    : 按照文件的属主来查询
-nouser  : 查询用户被删除了的文件
例如: 
    查询出属主为test01的文件
        find /root/ -user test01
    查询属主被删除了的文件
        find /root/ -nouser
-group   : 按照文件属组来查询
-nogroup : 查询没有数组的文件
    知识储备:
        删除用户    : userdel
        删除用户组  : groupdel
例如: 
    查询属组为test的文件
        find /root/ -group test
    
    查询属组被删除了的文件
        find /root/ -nogroup
-mtime   : 按照修改文件的时间来查询
    +    : 查询某个时间段之前的数据(可以忽略)
    -    : 查询某个时间段之内的数据
-ctime   : 按照文件的创建时间来查询
-atime   : 按照访问时间来查询文件
    -a (默认)   :并且
    -o          : 或者
    -exec(xargs): 处理匹配之后的内容
    -maxdepth   : 查询的目录深度(必须放置与第一个参数位)
例如: 
    查询2天以前修改过的文件
        find /root/ -mtime +2
        
    查询2天以内创建的文件
        find /root/ -ctime -2
        
    查询2天以内访问过的文件
        find /root /atime -2
    
    查询在3天以内创建的文件,并删除
        find /tmp/ mtime -3 -type f -exec rm -rf {} \;
                -exec   : 处理查询之后的内容
                {}      :代表的是查询到的内容
                \;      : 固定搭配
        知识储备 :
                xargs   : 将所有的内容格式化成一行
    eg:
        find /tmp/ -mtime -3 -type f |xargs -I {} rm -rf {}
练习:
    要求将所有3天前创建的普通文件加上.bak后缀
        
        find /tmp -ctime -3 -type f -exec mv {} {}.bak \;
        find /tmp/ -type f -ctime -3|xargs -I {} mv {} {}.bak

-size     : 按照文件的大小来查询
    +     : 查询超过n的文件
    -     :查询小于n的文件
    没符号:等于
    
    
    知识储备 :
        stat :查看文件的各种时间
L例如:
    查询大于1M的文件
        find /root/ -size +1M
    
    查询小于1M的文件
        find /root/ -size -1M
管道符
Linux用于传输数据,可以将前一个命令的执行结果,交给管道之后的命令去处理

格式 :
    |
|    : ① 表示管道符号,管道前面命令,交给管道后面执行
       ② 经常配合xargs命令使用
| 配合xargs命令使用方法:  
    
    查找指定数据信息进行删除
        find /oldboy -type f -name "oldboy*.txt"|xargs rm
        find /oldboy -type f -name "oldboy*.txt" -exec rm -rf {} \;
        find /oldboy -type f -name "oldboy*.txt" -delete
        
    查找指定数据信息进行复制
        find /oldboy -type f -name "oldboy.txt" |xargs -i cp {} /oldgirl/
        find /oldboy -type f -name "oldboy*.txt" |xargs cp -t /oldgirl/
        find /oldboy -type f -name "oldboy*.txt" -exec cp -a {} /oldgirl \;
         
    查找指定数据信息进行移动
        find /oldboy -type f -name "oldboy*.txt" |xargs -i mv {} /oldboy/
        find /oldboy -type f -name "oldboy*.txt" |xargs mv -t/oldgirl\;
        find /oldboy -type f -name "oldboy*.txt" -exec mv {} /oldgirl \;
       
    查找指定数据信息按照日期, 主要用户批量删除历史数据信息
        查找7天以前的数据: find /oldboy -type f -mtime +7 
        查找最近7天的数据: find /oldboy -type f -mtime -7
        查找距今第7天数据: find /oldboy -type f -mtime 7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值