Bootstrap

Linux shell命令 批量删除目录下的文件,保留指定数量的最新文件

#!/bin/bash

#要删除的文件目录
fileDir=/home/test/
#要保留的文件数量
num=8
#获取指定目录下的文件数量
f_size=`ls|wc -l`
#循环删除
while(( $f_size > $num ))
do
#获取指定目录下修改时间最早的文件名
oldFile=$(ls -rt $fileDir|head -1)
echo "Delete file:"$oldFile
#删除文件
rm -rf $fileDir/$oldFile
#文件数量递减
let "f_size--"
done

可以改进的点
1、可以通过参数传递目录和文件保留数量
2、可以使用crontab定时任务来执行脚本,到达定时清理目录文件的功能。

;