Torres-tao  

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:大于
posted on 2022-05-05 15:21  雷子锅  阅读(562)  评论(0编辑  收藏  举报