
比如
ls -lt
是按照文件修改时间排序,那么
ls -ltr 就是按照相反的顺序
或者
ls -lS
是按照文件大小排序 (大的在前面),那么
ls -lSr 就是小的在前面。
可以使用find的 ctime 选项,ctime的意思是最后修改的时间 +3 表示三天前,也就是在 /backup_100 目录里 找到三天前的符合 abc*的文件及目录并删除。
find /backup_100 -name "abc*" -ctime +3 -exec rm {} \
如果每天备份多次,
可以使用 NUM=`ls|wc -l`DEL_NUM=$(($NUM-3))for i in `ls -tr|head -$DEL_NUM`do rm -rf $idone
这样,首先判断当前备份了$NUM次,也就是/backup/abcxxx里有多少个文件夹,
然后NUM-3就是需要删除的文件夹的个数,
然后使用循环,
ls -tr|head -$DEL_NUM 这样通过按时间升序排列取前$DEL_NUM个目录名并依次删除,最后就只剩下了最新的三个目录了。
然后把这样的脚本添加到你的自动备份脚本的最后面就可以了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)