批量删除文件,只保留目录下最新的几个文件,其他均删除

ぃ、小莉子 提交于 2019-11-27 13:55:30

1、新建删除脚本 del.sh

#!/bin/bash

#保留文件数
ReservedNum=5              ##保留最新的五个文件
FileDir=/data/bak          ##文件目录
date=$(date "+%Y%m%d-%H%M%S")

FileNum=$(ls -l $FileDir|grep ^- |wc -l)

while(( $FileNum > $ReservedNum))
do
OldFile=$(ls -rt $FileDir| head -1)
echo $date "Delete File:"$OldFile
rm -rf $FileDir/$OldFile
let "FileNum--"
done 

2、添加自动运行任务crontab

如果未安装crontab,先安装

yum install crontabs -y

添加自动运行任务

crontab -e

* 0 * * * bash /home/sh/del.sh

意思是每天凌晨0点,自动运行 /home/sh文件夹下的del.sh脚本

 

 

 

查看任务

crontab -l


 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!