linux-shell 按時間排序保留最新的N個文件夾


#!/bin/sh

if [ -z $1 ] || [ -z $2 ];then
    echo -e "usage: ./folder_save.sh [save num of int] [deal with path]"
    exit
fi

echo -e "0=$0,1=$1, 2=$2"

basedir=$(cd `dirname $0`;pwd)
dealwithdir=$2 #/home/afc/savefiles
DATE=$(date "+%F %H:%M")
#path=${basedir}/test
save_num=$1
line=$(ls -l ${dealwithdir}|sed 1d|wc -l)
if [ ! $basedir/del_name.log ];then   
   touch $basedir/del_name.log
fi

   echo "------------------------$DATE------------------------"  >>$basedir/del_name.log

if [ $save_num -lt $line ];then
   echo "----------------delete dealwithdir is $dealwithdir-------------------" >>$basedir/del_name.log
   ls -t $dealwithdir|awk "{if(NR>$save_num){print \$1}}" >>$basedir/del_name.log
   cd $dealwithdir
   ls -t|awk "{if(NR>$save_num){print \$1}}"|xargs rm -rf 
else
   echo "$dealwithdir wenjian number is ok" >>$basedir/del_name.log
fi

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM