Linux shell脚本实现保留目录下最新5个文件

日常工作中需要在Linux系统中写一个shell脚本,实现自动删除某一目录下文件,只保留最新的5个或多个文件的需求,特编写此shell脚本:
文件名:file_reten_five.sh
文件所在路径:FileDir参数的值
保留文件名:{test,abc}中的值,分别以test和abc开头,以.log为结尾的文件,例如test20240810.log和abc20240810.log,具体以实际为准
保留文件数:ReservedNum参数的值

#!/bin/bash
############################
#删除某一目录下文件,只保留最新的5个
############################

#保留文件数及文件所在目录
ReservedNum=5
FileDir=/home/oracle

for i in {test,abc}
do
	#按文件特征进行分类,显示文件数量
	FileNum=$(ls -l $FileDir/$i*.log | grep ^- |wc -l)
	while(( FileNum > ReservedNum))
	do
		#显示待删除的旧文件名
		OldFile=$(ls -rt $FileDir/$i*.log | head -1)
		echo "Delete File:" $OldFile
		rm -f $OldFile
		let "FileNum--"
	done
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值