美文网首页
8.重定向,文件解压缩,find文件查找

8.重定向,文件解压缩,find文件查找

作者: 划水健将 | 来源:发表于2021-07-17 10:46 被阅读0次

    1.重定向(掌握)

    2.文件压缩(掌握)

    3.find查找(掌握)

    1.重定向

    1.1掌握> >> 2>或者2>> &> 的使用
        > 追加
        >> 覆盖
        2> 错误覆盖
        2>> 错误追加
        &> 混合覆盖
        &>> 混合追加 
    1.2 了解其他表达方式
        待补充
    1.3 xargs,tee的使用熟练掌握xargs,了解tee即可
        xargs:将命令左侧的输出传递给右侧命令的输入
        例:find /tmp -name ".log" | xargs rm -rf 
            #将find查找的内容传递给rm -rf 删除 xargs 执行效率比find的exec高
        tee:三通管道,将前面命令的输出到文件中或者屏幕,后面能正常接受前面的输出,不影响后面的处理 
    

    2.文件压缩,gzip,zip,tar

    2.1 gzip对文件进行压缩
        压缩:gzip file
        解压:gzip  -d file.gz
        查看:zcat file.gz #类似windows压缩包双击查看
    2.2 zip 对文件或者目录进行压缩
        压缩:zip -r etc.zip /etc # -r 递归打包
        解压:unzip etc.zip
        查看:unzip -l etc.zip
    2.3 tar对文件或目录归档或者压缩,大小不一样、
        压缩:tar czf name.tar.gz /etc # 加z就是压缩,不加就是归档
        解压:tar xf name.tar.gz  -C /dir # -C 解压到指定目录
        查看:tar tf name.tar.gz
        排除:tar czf name.tar.gz --exclude=/etc/hosts --exclude=/etc/hostname /etc
    

    3.find查找

        3.1 find可以通过文件类型、名称、时间、大小、用户、权限、逻辑(a o !) 进行查找。
            3.1.1 find通过文件类型查找
                find /tmp/ -type d -empty | xargs rm -rf
                #查出空目录删除
                find / -type f 
                # f
                # d 
                # l 
                # b
                # ....
            3.1.2 find 通过名字查找
                find / -type f -name "ifconfig-*"
                #从/查找以ifconfig-开头的文件
            3.1.3 find 通过时间查找
                find /var/log/ -type f -mtime +7 -name "*.log"| xargs rm -rf
                # -mtime -7 七天以内的文件,包括当天的
                # -mtime 7  第七天的文件,不包括当天
                # -mtime +7 七天之前的文件,不包括当天的文件
                # -mmin +7 列出七分钟前发生的文件
                # -mmin -7 列出七分钟内发生文件
                # 图例:
    
    find-mtime.png
        -mtime案例:备份6个月之前的日志,并将文件删除,只保留压缩文件
                find /var/log/ -type f -a -name "xxapp*.log" -mtime +180 | xargs tar czf `date +%F`ago-180 
                find /var/log/ -type f -a -name "xxapp*.log" -mtime +180 | xargs rm -rf 
                #暂时没想到比较好的方法,用了个比较笨拙的
            -mmin案例:列出/usr/bin/目录下最近10分钟有那些命令文件发生变化
                find /usr/bin -type f -a -mmin -10 
                #主要就是查看最近文件是否被修改
        3.1.4 find 通过文件大小查找
            # -size +5M 大于5M的文件
            # -size -5M 小于5M的文件
            # -size 5M  等于5M的文件
            案例1:查找系统中大于5M的文件
                find / -type f -a -size +5M  | xargs ls -lh 
            案例2:查找var/log/备份日志文件超过100M,且超过半年以上,找到并删除。
                   1)修改到半年前(设置系统时间)然后模拟创建一个超过100M的文件
                  dd if=/dev/zero of=/var/log/app.log count=4 bs=50M
                  #dd if 从/dev/zero 取数据
                  #of 放到那个文件
                  #count 拿几次
                  # bs 每次拿多少
                  tar cf app.log.tar.gz /var/log/app.log #采用归档打包。压缩也行,压缩后大于100M即可
                  find  /var/log/ -size +100M -a -mtime +180 | xargs rm -rf 
                
        3.1.5 用户,权限略,随用随查
                
        3.1.6 逻辑a o !
            -a = 与(并且) 满足前后两个条件
            -o = 或 (或者)  满足一个条件几个
            -not|! 取反
    
            案例:找出/tmp目录下,属主不是root,且文件名不以f开头的文件
                find /tmp/ -type f -a  ! -name  "f*"  -a  ! -user root
                
        3.1.7 find找到文件后的处理动作
            find /var/log/ -type f -name "*app.log" 加下列的处理动作
            #-delet         #删除
            #-exec rm -f {} \;  #删除
            #-exec cp {} /tmp \; #cp 到、tmp
            #| xargs rm -rf  #删除 建议使用,效率高
            
            find /tmp/ -type f | xargs grep -R "关键字"
            #| xargs grep -R "关键字" -R递归筛选

    相关文章

      网友评论

          本文标题:8.重定向,文件解压缩,find文件查找

          本文链接:https://www.haomeiwen.com/subject/fxobpltx.html