对于自动备份的一些文件,备份的会越来越多,所以,有时需要保存指定数量最新的文件,可以用一个简单的脚本来完成,操作系统平台是CentOS 6.5。
获取当前脚步所在目录
RootDir=$(cd `dirname $0`; pwd)
查看当前目录的文件数详细信息
ls -lt
显示文件数
FileNum=$(ls -l | grep ^- | wc -l)
取最旧的文件
OldFile=$(ls -rt *.* | head -1)
终上所述,完成速的代码如下:
#!/bin/bash
#保留文件数
ReservedNum=8
#当前脚步所在目录
RootDir=$(cd `dirname $0`; pwd)
#显示文件数, *.*可以改为指定文件类型
FileNum=$(ls -l *.* | grep ^- | wc -l)
while(( $FileNum > $ReservedNum ))
do
#取最旧的文件,*.*可以改为指定文件类型
OldFile=$(ls -rt *.* | head -1)
echo "Delete File:"$RootDir'/'$OldFile
rm -f $RootDir'/'$OldFile
let "FileNum--"
done
执行的结果会删除
接下来,再提供一种组合删除语句
ls -lt | awk '{if(NR>5){print "rm "$9}}' | sh