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

2021-07-17  本文已影响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递归筛选
上一篇下一篇

猜你喜欢

热点阅读