保留当前目录下相同文件前缀最新的几个文件,其他文件都删除的脚本
#!/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