在linux *** 作系统中,ls -t命令用来根据文件的修改时间排序,但怎样才能将最新的文档排在前面,而不是后面

在linux *** 作系统中,ls -t命令用来根据文件的修改时间排序,但怎样才能将最新的文档排在前面,而不是后面,第1张

不管你是根据什么排序,加上 -r 就会反序

比如

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个目录名并依次删除,最后就只剩下了最新的三个目录了。

然后把这样的脚本添加到你的自动备份脚本的最后面就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7318398.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存