Linux 保留目录下最新的几个文件
#!/bin/bash
#文件名后缀
file_type=".jar"
#保留最新的文件个数
num=10
file_num=$(ls -ltr | grep -v "total" | grep "^-" | grep ${file_type} | wc -l)
if [ ${file_num} -gt ${num} ];then
let num_del=${file_num}-${num}
ls -ltr | grep -v "total" | grep "^-" | grep ${file_type} | awk '{print $9}' | head -n ${num_del} | xargs rm -rf
fi
命令说明:
- ls -ltr:按行列出文件,按时间倒叙,旧的在上
- grep -v “total”:排除ls -ltr时,第一行的total栏
- grep “^-”:匹配文件类型
- awk ‘{print $9}’:只输出文件名
- head -n ${num_del}:匹配前num_del行的文件
- wc -l:统计行数(相当于统计有多少个这样的文件)
- -gt:大于