Shell保留目录下最新的几个文件

保留当前目录下相同文件前缀最新的几个文件,其他文件都删除的脚本

#!/bin/bash

function deleteOldPkg()
{
#保留文件数
ReservedNum=2
#显示文件数, *.*可以改为指定文件类型
cd $1
FileNum=$(ls -l | grep $2 | wc -l)
while(( $FileNum > $ReservedNum ))
do
#取最旧的文件,*.*可以改为指定文件类型
OldFile=$(ls -rt | grep $2 | head -1)

echo "Delete File:"$1/$OldFile

rm -f $1/$OldFile

let "FileNum--"

done
}


function deleteDirPkg()
{
ls $1 | while read line
do
echo $line begin to check
if [ -d $1"/"$line ]
then
deleteDirPkg $1"/"$line
else
ModuleName=${line%%_*}
echo "module===== " $ModuleName
deleteOldPkg $1 $ModuleName 
fi
done
}

# 程序的入口函数
function main()
{
ls $1 | while read line
do
echo $line
if [ -d $1"/"$line ]
then
deleteDirPkg $1"/"$line
fi
done
}


dir=`dirname $0`
dir=`cd $dir; pwd`

main $dir

 

Shell保留目录下最新的几个文件

上一篇:lmgrd在Linux系统上的配置


下一篇:ubuntu 环境里,指定libc版本运行程序