Linux【2】:清理几天前的文件夹YYYYMMDD

1、清理指定日期【文件名】前文件夹脚本

  • 脚本如下
    #!/bin/bash
    #移除模糊目录下的日期文件夹
    RemoveDir=/root/tlogs/*
    dt=`date +%Y-%m-%d -d "7 day ago"`
    for subdir in `ls $RemoveDir`;
    do
        if [ "${subdir}" \< "${dt}" ];
            then
            #此段脚本判断日期是否合法
            if echo $subdir | grep -Eq "[0-9]{4}-[0-9]{2}-[0-9]{2}" && date -d $subdir +%Y%m%d > /dev/null 2>&1
                    then :
            else
                    echo "The directory(device) $subdir don't remove."
                    #echo "输入的日期格式不正确,应为yyyy-mm-dd";
                    continue;
            fi
            #删除目录 有错误不显示
            rm -rf $RemoveDir/$subdir >/dev/null
            echo "The directory(date) $RemoveDir/$subdir has been removed."  
        fi
    done
    

需要注意的是那个比较的小于号"<“,必须要带上”",不然就会报找不到目录的错误

2、清理指定日期【文件日期】前的文件

  • 脚本如下:
    find /var/log/ -mtime +7 -name "*.log" -exec rm  {} \;
    
  • 说明:
    • find :查找命令
    • /var/log/ :需要查找的文件路径
    • -mtime +7 :按文件更改时间来查找文件,-7指7天以内,+7指7天以前
    • -name “*.log” :你要查找的文件名,可用通配符
    • -exec :将find查到的文件执行command操作,{} 和 ;之间有空格
    • rm {} ; :需要执行的command操作

3、find命令说明

扩展:
find ~ -name "*.txt"                         #在$HOME中查找找.txt文件并显示
find ./ -name "[A-Z]*"                       #查找找以大写字母开头的文件
find ./ -name "[a-z][a-z][0–9][0–9].txt"     #查找找以两个小写字母和两个数字开头的txt文件
find ./ -type f -perm 755                    #在当前目录查找找权限为755的文件
find ./ -type d -perm 755                    #在当前目录查找找权限为755的目录
find ./ -perm 755                            #在当前目录查找找权限为755的文件和目录
find ./ -perm 755 -type f -exec ls -l {} \;  #查找找当前目录权限为755权限的文件并执行ls -l 命令
find ./ -type l                              #查找当前目录下的链接文件
find ./ -size +10                            #查找长度超过期作废10块的文件(1块=512字节)
find /etc/ -name "passwd" -exec grep -i "user1" {} \;#查看user1用户是否存在
find ./ -name test* fprint file.txt          #在当前目录下查找以test开头的文件,并把结果输出到file.txt中
find ./ -name ab* -o -name cd*               #查找以ab或cd开头的文件
find /home -mtime -2                         #在/home下查找最近两天内改动过的文件
find /home -atime -1                         #查找1天之内被存取过的文件
find /home -mmin +60                         #在/home下查找60分钟前改动过的文件
find /home -amin +30                         #查找最近30分钟前被存取过的文件
find /home -newer tmp.txt                    #在/home下查找更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt                   #在/home下查找存取时间比tmp.txt近的文件或目录
find /home -user user1                       #列出/home目录内属于用户user1的文件或目录
find /home -uid +501                         #列出/home目录内用户的识别码大于501的文件或目录
find /home -group user1                      #列出/home内组为user1的文件或目录
find /home -gid 501                          #列出/home内组id为501的文件或目录
find /home -nouser                           #列出/home内不属于本地用户的文件或目录
find /home -nogroup                          #列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4         #列出/home内的tmp.txt 查找时深度最多为3层
find /home -name tmp.txt -mindepth 3         #从第2层开始查找
find /home -empty                            #查找大小为0的文件或空目录
find /home -size   +512k                     #查找大于512k的文件
find /home -size   -512k                     #查找小于512k的文件
find /home -links   +2                       #查找硬连接数大于2的文件或目录
find /tmp  -name tmp.txt -exec cat {} \;     #查找tmp下名为tmp.txt的文件并cat它
find /tmp  -name tmp.txt -ok   rm {} \;      #查找tmp下名为tmp.txt的文件并删除它,-ok:删除前提示
find  / -amin    -10                         #查找在系统中最后10分钟访问的文件
find  / -atime   -2                          #查找在系统中最后48小时访问的文件
find  / -group   user1                       #查找在系统中属于user1组的文件
find  / -mmin    -5                          #查找在系统中最后5分钟里修改过的文件
find  / -mtime   -1                          #查找在系统中最后24小时里修改过的文件
find  / -nouser                              #查找在系统中属于作废用户的文件
find  / -user    user1                       #查找在系统中属于user1这个用户的文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QQ719872578

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值