在 CentOS 6 Linux 上,我使用date +%a
多个 cronjobs 和脚本来生成日志文件名myprog-Tue.txt
,多年以来这对我来说效果很好。
但是现在对于一个程序,我需要删除以前的日志文件,即在我的 cronjob 中启动我的程序并将其输出重定向到之前myprog-Tue.txt
,我想删除myprog-Wed.txt
。
这样,我想就可以把旧的日志文件清除掉,但仍然保留 5-6 天的日志文件。
所以我尝试过:
# date -v+1d +%a
date: invalid option -- 'v'
Try `date --help' for more information.
有人知道这里出了什么问题吗?
答案1
你可以这样做:
date -d "+1 days" +%a
其渲染结果为:
星期六
答案2
问题不在于如何使用date
来输出您想要的内容……您的问题是:
这边走我想把旧的日志文件清理掉,但仍然有 5-6 天的日志文件。
那么,为什么不find
删除所有文件而只删除本周的文件呢?
find /path/to/files/ -mtime +7 -exec rm {} \;
此外,date
它有许多不同的实现 - 我记得上次使用它时,很难找到flags
做我想做的事情的权利......并且让它在 Linux 和 AIX 机器之间以相同的方式工作并不容易......所以,以防万一这条评论可以帮助您做出决定date
:)
答案3
使用-d
选项指定短语:
date -d '+ 1 day' +%a